在unix/linux系统上,如何了解有关mylib.a存档的更多信息?

Bre*_*all 4 unix linux archive

在这种特殊情况下,我试图发现mylib.a文件是32位还是64位兼容.我熟悉ldd的共享对象(mylib.so)但是如何检查常规.a存档?

Jay*_*ayG 10

"nm"和"ar"将为您提供有关库存档的一些信息.


eph*_*ent 7

$ objdump -G /usr/lib/libz.a
In archive /usr/lib/libz.a:

adler32.o:     file format elf32-i386

...

$ objdump -G /usr/lib64/libz.a
In archive /usr/lib64/libz.a:

adler32.o:     file format elf64-x86-64

...

$ objdump -G /ppc-image/usr/lib/libz.a
In archive /ppc-image/usr/lib/libz.a:

adler32.o:     file format elf32-powerpc

...

需要一个支持multilib的binutils,但它非常简单,不是吗?


Bre*_*all 5

标准的“ nm”和“ ar”实用程序将为您提供有关存档的信息。

要了解档案的32/64位功能,请使用“ ar”提取mylib.a中的.o文件,然后在.o文件上运行“ file”以发现其类型,包括32/64位的用法。