63

我有一个静态库,比如说mystaticlib.a. 我想看看它的内容,比如里面有多少个目标文件。

我怎样才能在 gcc 上做到这一点?

4

5 回答 5

100

在 gcc 上,使用ar -t.

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

更多信息在这里

于 2010-09-21T03:32:38.283 回答
53

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

nm -C libschnoeck.a | less
于 2010-09-21T09:08:11.247 回答
16

在 Mac 上,只需使用

nm libschnoeck.a | less

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

于 2014-01-23T22:34:01.780 回答
2

它只是偶然发现了这个:

您可以使用 7zip 打开存档 (.a)。也适用于存档中的目标文件。列出各种内容,如.text, .bss, .data,offset, length, type,。此外,还可以使用十六进制编辑器或记事本++查看内容,可以解压所有内容。我用GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi-Toolchain 创建的存档对此进行了测试,并且7Zip 16.04 (64-bit)

于 2019-08-21T08:43:25.687 回答
0

我刚刚发现你可以用readelf -a一个静态库来显示所有目标文件的内容。

像这样调用 readelf 命令$ readelf -a mystaticlib.a

于 2021-09-01T17:04:02.313 回答