"неопределенная ссылка", даже в библиотеке есть символ функции
Когда я связал.o файлы, возникли некоторые проблемы:
gcc -L/usr/local/apr/lib -lapr-1 -pthread -laprutil-1 devpkg.o bstrlib.o db.o shell.o commands.o -o devpkg
devpkg.o: In function `main':
/root/workspace/devpkg/devpkg.c:21: undefined reference to `apr_pool_initialize'
/root/workspace/devpkg/devpkg.c:22: undefined reference to `apr_pool_create_ex'
/root/workspace/devpkg/devpkg.c:36: undefined reference to `apr_getopt_init'
/root/workspace/devpkg/devpkg.c:38: undefined reference to `apr_getopt'
Я использовал objdump -T, чтобы проверить библиотеку, она вернулась:
objdump -T libapr-1.so|grep apr_pool_initialize
000000000001db00 g DF .text 00000000000000fb Base apr_pool_initialize
Почему это случилось?
1 ответ
Решение
Скорее всего, это просто проблема с зависимостями. Возможно, вы захотите попробовать перечислить все библиотеки, на которые вы ссылаетесь после файлов.o, в правильном порядке, основываясь на их зависимости друг от друга.