2012-02-17 131 views
3

我在Linux中有一个二进制文件,我想知道它已经编译了哪些函数。如何知道可执行文件中有哪些功能?

我的项目由几个对象文件组成,每个对象文件包含不同的功能。有时我不知道我编译可执行文件的是哪一个。我怎么知道?

我正在用不同的体系结构(arm,mips ...)编译工具链。

谢谢。

+2

'nm'已被提及,您也可以尝试'objdump','readelf'(如果可用)。你甚至可以通过'grep'来找出函数是否存在,如果'foo'是一个符号存在,当你执行'grep foo helloworld.o'时,你会得到一个类似'Binary file helloworld.o matches'的消息。 – 2012-02-17 11:52:06

+0

谢谢,最后readelf -s和objdump -T做到了! – fazineroso 2012-02-17 12:22:37

+0

['objdump'](http://linux.die.net/man/1/objdump) – tMC 2012-02-17 18:28:00

回答

5

您可以在unix/Linux上使用nm命令。或
您可以在Windows上使用dumpbin

+0

OP并没有询问Windows – vitaut 2012-02-17 11:52:23

+3

@vitaut:SO可以通过Google搜索,所以在回答这个问题时没有任何伤害标题以及带有额外限制的完整问题。 – 2012-02-17 12:10:01

相关问题