[TOC]
概述
文章参考:http://man6.org/blog/Linux/%E5%AE%9E%E7%94%A8%E5%91%BD%E4%BB%A4.md
ldd - 打印共享库依赖
objdump
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 查看动态库有哪些符号,包括数据段、导出的函数和引用其他库的函数 objdump -tT xxx.so objdump -x xxx.a
# 查看动态库依赖项 objdump -x xxx.so | grep "NEEDED"
# 查看动态符号表 objdump -T xxx.so #
# 查看动态符号表 objdump -t xxx.so #
|
nm
1 2 3 4 5 6 7 8 9 10
| # 查看静态库或动态库定义了哪些函数 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"
|
readelf
1 2 3 4 5
| # 查看静态库定义的函数 readelf -c xxx.a
# 查看静态库定义的函数 readelf -A xxx.so
|