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

有帮助吗?

解决方案

"纳米"和“ar”将为您提供有关库存档的一些信息。

其他提示

$ 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 ,但它非常简单,不是吗?

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

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

在一般情况下,我只使用'file'实用程序。

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