On a unix/linux system how can I learn more about

2019-07-06 13:48发布

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?

4条回答
孤傲高冷的网名
2楼-- · 2019-07-06 14:07

"nm" and "ar" will give you some information about the library archive.

查看更多
我想做一个坏孩纸
3楼-- · 2019-07-06 14:11

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楼-- · 2019-07-06 14:22

In the general case, I just use the 'file' utility.

查看更多
做自己的国王
5楼-- · 2019-07-06 14:34
$ 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?

查看更多
登录 后发表回答