是否有手册或方法可以从标题YYY.h中找出哪个文件libXX.so
包含哪些函数等?
例如:
我在里面包含一个带有foofunk()函数的头文件foo.h。 但链接器表示对foofunk()的未定义引用。
注意:
我想使用Makefile进行构建和链接过程。 (GCC) 我的资料来源是C,但这应该是不重要的。
答案 0 :(得分:5)
使用objdump。
objdump -T library.so | grep ' Base ' | grep ' function_name$'
现在遍历您怀疑定义给定函数的共享库,并使用objdump检查每个库。
for f in /usr/lib/lib*.so; do \
objdump -T $f | grep ' Base ' | grep -q ' function_name$' && echo $f && break
done
如果您想要继续搜索,请删除break
,尽管找到了您正在寻找的图书馆。
如果是静态库,请将-T
替换为-t
并删除grep
之一。
objdump -t library.a | grep ' function_name$'