我想验证对象是用32位还是64位编译的:
% readelf -h my_obj
ELF Header:
Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, big endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
...
由于显示了ELF32,是否可以保证对象处于32位模式?
胖二进制文件不是ELF的通用或标准,因此该类确实可以可靠地指示32位和64位。但是要弄清楚您是要使用32位x86,ARM,MIPS还是其他产品,您还必须检查Type字段正下方的Machine字段。