6

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

4

4 回答 4

12

“nm”和“ar”将为您提供有关图书馆档案的一些信息。

于 2008-10-08T19:43:49.653 回答
8
$ objdump -G /usr/lib/libz.a
在存档 /usr/lib/libz.a 中:

adler32.o:文件格式elf32-i386

...

$ objdump -G /usr/lib64/libz.a
在存档 /usr/lib64/libz.a 中:

adler32.o:文件格式elf64-x86-64

...

$ objdump -G /ppc-image/usr/lib/libz.a
在存档 /ppc-image/usr/lib/libz.a 中:

adler32.o:文件格式 elf32-powerpc

...

需要一个 multilib-capable binutils,但它非常简单,不是吗?

于 2008-10-08T20:04:15.163 回答
5

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

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

于 2008-10-08T19:52:29.243 回答
0

在一般情况下,我只使用“文件”实用程序。

于 2008-10-08T19:49:17.770 回答