在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
,但它非常简单,不是吗?
Objdump -G给出了一些简洁的格式列表。 –
2008-10-09 13:19:43