使用objdump查看动态库和静态库中具有哪些函数
2016-06-21 15:32
896 查看
我们在 Linux 下运行一个程序,有时会无法启动,报缺少某某库。这时需要查看可执行程序或者动态库中的符号表,动态库的依赖项, Linux 有现成的工具可用:objdump 。
objdump 是 gcc 套件中用来查看 ELF 文件的工具,具体详细用法不进行介绍,此处只讲解如何进行一个动态库和静态库中导出函数的查看。
1). 查看依赖项:objdump -x xxx.so | grep "NEEDED" 。下面是我查看 libsf_modbus_preproce.so 时的输出截图:
2). 查看动态符号表: objdump -T xxx.so 。假如想知道 xxx.so 中是否导出了符号 yyy ,那么命令为 objdump -T xxx.so | grep "yyy" 。下面是我查看
libsf_modbus_preproce.so 时的输出截图:
3). 查看符号表: objdump -t xxx.so 。-T 和 -t 选项在于 -T 只能查看动态符号,如库导出的函数和引用其他库的函数,而 -t 可以查看所有的符号,包括数据段的符号。下面是我查看 libsf_modbus_preproce.so 时的输出截图:
我们在 Linux 下运行一个程序,有时会无法启动,报缺少某某库。这时需要查看可执行程序或者动态库中的符号表,动态库的依赖项, Linux 有现成的工具可用:objdump 。
objdump 是 gcc 套件中用来查看 ELF 文件的工具,具体详细用法不进行介绍,此处只讲解如何进行一个动态库和静态库中导出函数的查看。
1). 查看依赖项:objdump -x xxx.so | grep "NEEDED" 。下面是我查看 libsf_modbus_preproce.so 时的输出截图:
2). 查看动态符号表: objdump -T xxx.so 。假如想知道 xxx.so 中是否导出了符号 yyy ,那么命令为 objdump -T xxx.so | grep "yyy" 。下面是我查看
libsf_modbus_preproce.so 时的输出截图:
3). 查看符号表: objdump -t xxx.so 。-T 和 -t 选项在于 -T 只能查看动态符号,如库导出的函数和引用其他库的函数,而 -t 可以查看所有的符号,包括数据段的符号。下面是我查看 libsf_modbus_preproce.so 时的输出截图:
相关文章推荐
- 深入探讨Linux静态库与动态库的详解(一看就懂)
- linux生成(加载)动态库静态库和加载示例方法
- iOS创建与使用静态库
- xcode 4 制作静态库图文详解
- Xcode中创建静态库,使用Target支持不同平台
- iOS 开发——生成.a文件
- linux 下静态库和动态库详解
- iOS 创建静态库
- linux中的动态库和静态库
- 静态链接与动态链接的异同
- Linux下创建和使用静态库、共享库的方法总结
- 关于Unix静态库和动态库的分析
- 查找内核模块的导出函数
- 静态库的创建
- 使用Automake 创建和使用静态库/动态库
- Head First C 学习日志 第八章 静态库与动态库 静态库的创建与使用
- Objdump
- linux 静态库的编译和连接过程遇到的问题
- 静态库制作之备注
- iOS开发-静态库.a的制作