静态库的内容

时间:2010-09-21 03:31:10

标签: c++ c gcc static-libraries object-files

我有一个静态库,比如mystaticlib.a。我想查看其内容,例如其中的目标文件数。

如何在gcc上执行此操作?

5 个答案:

答案 0 :(得分:67)

在gcc上,使用ar -t

gnu archiver (ar)

-t选项将归档的目录写入标准输出。只有文件操作数指定的文件才能包含在书面列表中。如果未指定文件操作数,则归档中的所有文件都应包含在归档的顺序中。

More info here

答案 1 :(得分:25)

您可以使用nm查看内容(进入其中的.o文件)和定义的符号。如果这包含C ++代码,则应使用-C选项来解码符号名称:

nm -C libschnoeck.a | less

答案 2 :(得分:14)

在Mac上,只需使用

即可
nm libschnoeck.a | less

Mac版本的nm没有-C选项。

答案 3 :(得分:1)

它偶然跌倒了:

您可以使用7zip打开档案(.a)。 也适用于归档中的目标文件。 用其.text, .bss, .data,列出各种内容,例如offset, length, type,等... 此外,可以使用十六进制编辑器或notepad ++解压缩所有内容。 我使用GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi-工具链创建的档案文件对此进行了测试 和7Zip 16.04 (64-bit)

答案 4 :(得分:0)

以上所有答案均正确。我只是提供URL,以获取有关“ nm”命令的更多信息。

您可以访问下面提到的网站。

https://www.mkssoftware.com/docs/man1/nm.1.asp