我有一个静态库,比如说mystaticlib.a
. 我想看看它的内容,比如里面有多少个目标文件。
我怎样才能在 gcc 上做到这一点?
我有一个静态库,比如说mystaticlib.a
. 我想看看它的内容,比如里面有多少个目标文件。
我怎样才能在 gcc 上做到这一点?
在 gcc 上,使用ar -t
.
-t
gnu 归档器 (ar)的选项将归档目录写入标准输出。只有文件操作数指定的文件才应包含在书面列表中。如果未指定文件操作数,则归档中的所有文件都应按归档顺序包含。
您可以使用 .o 查看内容(进入其中的 .o 文件)和定义的符号nm
。如果这包含 C++ 代码,您应该使用该-C
选项来解开符号名称:
nm -C libschnoeck.a | less
在 Mac 上,只需使用
nm libschnoeck.a | less
Mac 版本的 nm没有-C
选项。
它只是偶然发现了这个:
您可以使用 7zip 打开存档 (.a)。也适用于存档中的目标文件。列出各种内容,如.text, .bss, .data,
等offset, length, type,
。此外,还可以使用十六进制编辑器或记事本++查看内容,可以解压所有内容。我用GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi-
Toolchain 创建的存档对此进行了测试,并且7Zip 16.04 (64-bit)
我刚刚发现你可以用readelf -a
一个静态库来显示所有目标文件的内容。
像这样调用 readelf 命令$ readelf -a mystaticlib.a
: