问题
In this particular case I'm trying to discover if a mylib.a file is 32 or 64 bit compatible. I'm familiar with ldd for shared objects (mylib.so) but how do I inspect a regular .a archive?
回答1:
"nm" and "ar" will give you some information about the library archive.
回答2:
$ 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 ...
Requires a multilib-capable binutils
, but it's pretty straightforward, is it not?
回答3:
Standard "nm" and "ar" utilities will give you information about the archive.
To learn about the 32/64 bit ability of the archive use "ar" to extract the .o files inside the mylib.a, then run "file" on the .o files to discover their type including the 32/64 bit usage.
回答4:
In the general case, I just use the 'file' utility.
来源:https://stackoverflow.com/questions/184502/on-a-unix-linux-system-how-can-i-learn-more-about-a-mylib-a-archive