"неопределенная ссылка", даже в библиотеке есть символ функции

Когда я связал.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, в правильном порядке, основываясь на их зависимости друг от друга.

Другие вопросы по тегам