当我链接 .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
为什么会这样?
最佳答案
这很可能只是一个简单的依赖性问题。您可能想尝试在 .o 文件之后列出您链接到的所有库,并根据它们之间的依赖关系以正确的顺序排列。
关于c - "undefined reference"连lib都有函数符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25543132/