我怎么确定是否可能存在一个图书馆,或列出的功能一编制的图书馆?

有帮助吗?

解决方案

可以使用纳米命令列出在静态的符号库。

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 “您的库”

这将打印比你想要更多的 - 不只是函数名,而是整个符号表。检查你的符号的各种属性,你将能够理清从变量和东西的功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top