题
我怎么确定是否可能存在一个图书馆,或列出的功能一编制的图书馆?
解决方案
可以使用纳米命令列出在静态的符号库。
nm -g -C <libMylib.a>
其他提示
有关ELF二进制,可以使用readelf:
readelf -sW a.out | awk '$4 == "FUNC"' | c++filt
-s
:列表码元
-W
:不要切过长的名字
awk命令然后将过滤出的所有功能,以及c ++ FILT将unmangle它们。这意味着它将它们转换从内部命名方案,以便它们显示在人类可读的形式。它输出与此类似名称(从Boost.Filesystem的LIB获得):
285: 0000bef0 91 FUNC WEAK DEFAULT 11 boost::exception::~exception()
无C ++ FILT,名称被显示为_ZN5boost9exceptionD0Ev
有关微软的工具,“link /dump /symbols <filename>
”会给你血淋淋的细节。可能有其他的方法(或选择)得到更易于阅读列表。
在Linux/Unix可以使用 objdump -T
列出出口的符号所载的给予对象。在窗户那里的 dumpbin
(请参考 dumpbin /exports
).请注意,C++职能名称的错位以允许过载。
编辑:在看到codelogic的 明显的下降 我记得objdump也明白-C来执行去重整.
使用下面的命令:
objdump的-t “您的库”
这将打印比你想要更多的 - 不只是函数名,而是整个符号表。检查你的符号的各种属性,你将能够理清从变量和东西的功能。
不隶属于 StackOverflow