如何确定某个函数是否存在于一个库中,或列出编译库中的函数?如何列出编译库中包含的可用函数等?
9
A
回答
16
您可以使用nm命令列出静态库中的符号。
nm -g -C <libMylib.a>
3
使用这个命令:
objdump的-t“你的图书馆”
它将打印超过你的想象 - 不只是函数名,而是整个符号表。检查你得到的符号的各种属性,你将能够从变量和东西中整理出函数。
6
在Linux/Unix下,您可以使用objdump -T
列出给定对象中包含的导出符号。在Windows下有dumpbin
(IIRC dumpbin /exports
)。请注意,为了允许重载,C++函数名称会被损坏。
编辑:在看到codelogic的anwser后我记得objdump也知道-C去执行去块。
8
对于ELF二进制文件,你可以用readelf:
readelf -sW a.out | awk '$4 == "FUNC"' | c++filt
-s
:列表符号 -W
:不要切过长的名字
awk命令然后将过滤掉所有的功能,和C++ filt将取消它们。这意味着它会将它们从内部命名机制转换为可读的形式。它输出与此类似名称(从Boost.Filesystem的LIB拍摄):
285: 0000bef0 91 FUNC WEAK DEFAULT 11 boost::exception::~exception()
无C++ FILT,名称显示为_ZN5boost9exceptionD0Ev
7
对于微软的工具, “link /dump /symbols <filename>
” 会给你血淋淋细节。可能有其他方式(或选项)可以更容易阅读列表。
相关问题
- 1. 如何在mac os中列出动态库中包含的函数/符号?
- 2. 如何使用execl编译一个包含math.h库的程序()
- 3. g ++编译器中包含的g ++功能函数
- 4. 包含包含目录的标题时出现编译错误
- 5. 是否可以包含.c文件中的函数而不编译它?
- 6. 如何嵌入/包含JSP编译
- 7. 如何在SCons中编译包含子目录的包?
- 8. 如果没有包含函数列表,C++程序将不能编译
- 9. 如何在使用build.sh的NetBSD交叉编译中包含Bash?
- 10. 如何在使用Apache Ant编译的项目中包含ActionBar
- 11. 如何在MS-VS 2005编译器项目设置中包含数学库?
- 12. 编译器编译外部包含
- 13. 编译器编译也包含了吗?
- 14. 如何列出存储库中的所有可用软件包
- 15. 是否可以使用Swift包管理器来编译和包含C库?
- 16. 如何包含函数
- 17. 如何在预编译期间包含自定义的SASS函数?
- 18. 如何编译包含访问数据库的Visual C#2008程序?
- 19. 如何列出所有可能包含NULL列的重复行?
- 20. 如何在编译器中包含汇编程序
- 21. 如何使用包含列表的构造函数编写spring bean?
- 22. 如何促进Ocaml库与C函数调用的OCamljava编译?
- 23. 如何在不包含SDK库的情况下编译FDT中的SWC?
- 24. 如何在列表中包含其他数据库列?
- 25. 在源代码树中包含预编译的库
- 26. 如何使用gcc编译和链接python3包装函数
- 27. read()的包装函数不能编译
- 28. 如何使用包含线程的个人库编译C程序
- 29. 如何在dos中编译并运行一个包含weka库的java文件?
- 30. 包含构造函数的对象的闭包编译器注释