确定编译的ELF对象是32位还是64位

时间:2015-04-01 15:32:25

标签: gcc 32bit-64bit gnu-toolchain

我想验证对象是否已编译为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位模式?

1 个答案:

答案 0 :(得分:1)

Fat二进制文件对于ELF来说并不常见或标准,因此该类确实可以指示32位对64位。但是要弄清楚你是在查看32位x86,ARM,MIPS还是其他什么,你还必须检查Type字段正下方的Machine字段。