Libs
列出所有动态连接库 #
ldconfig -p
nm 命令 #
查看静态库或动态库定义了哪些函数
nm -n --defined-only xxxx.a
nm -g -C --defined-only xxxx.so
nm -D xxxx.so
显示hello.a 中的未定义符号,需要和其他对象文件进行链接.
nm -u hello.o
在 ./ 目录下找出哪个库文件定义了close_socket函数.
nm -A ./* 2>/dev/null | grep "T close_socket"
objdump 命令 #
查看动态库有哪些符号,包括数据段、导出的函数和引用其他库的函数
objdump -tT xxx.so
objdump -x xxx.a
查看动态库依赖项
objdump -x xxx.so | grep "NEEDED"
查看动态符号表
objdump -T xxx.so
假如想知道 xxx.so 中是否导出了符号 yyy
objdump -T xxx.so | grep "yyy" 。
查看动态符号表
objdump -t xxx.so
-T 和 -t 选项在于 -T 只能查看动态符号,如库导出的函数和引用其他库的函数,而 -t 可以查看所有的符号,包括数据段的符号。