在unix/linux系统上,我该如何学习更多关于mylib.a归档的知识?

在unix/linux系统上,我该如何学习更多关于mylib.a归档的知识?

问题描述:

在这种特殊情况下,我试图发现一个mylib.a文件是32位还是64位兼容。我熟悉ldd的共享对象(mylib.so),但我该如何检查一个常规的.a档案?在unix/linux系统上,我该如何学习更多关于mylib.a归档的知识?

“nm”和“ar”会给你一些关于库存档的信息。

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

标准的“nm”和“ar”公用程序会为您提供有关档案的信息。

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

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

+0

Objdump -G 给出了一些简洁的格式列表。 – 2008-10-09 13:19:43