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

问题描述 投票:1回答:1

我想验证对象是用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位模式?

gcc 32bit-64bit gnu-toolchain
1个回答
1
投票

胖二进制文件不是ELF的通用或标准,因此该类确实可以可靠地指示32位和64位。但是要弄清楚您是要使用32位x86,ARM,MIPS还是其他产品,您还必须检查Type字段正下方的Machine字段。

© www.soinside.com 2019 - 2024. All rights reserved.