Linux下查看共享文件(so库)的编译是32位还是64位

方法一

采用file查看:

file 命令可以用于查看文件的类型。它会根据文件的内容进行分析,给出详细的文件类型信息。

如:

file libQtCore.so

显示如下
libQtCore.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), BuildID[sha1]=48c5e4f8c016113f289e92bc912e851b65e16908, stripped
 

        执行该命令后,会显示.so文件的类型和架构信息。如果输出中含有"ELF 32-bit",则表示该.so文件是32位的;如果输出中含有"ELF 64-bit",则表示该.so文件是64位的。

file的常用参数选项

  • -b:以简要形式输出文件类型
  • -i:输出MIME类型以及字符编码
  • -z:对压缩文件进行解压缩后再进行分析

方法二

采用readelf

#采用readelf的-h参数 查看当前文件的头信息,会显示ELF文件的文件头信息,包括ELF类型、位数、入口地址、节表偏移等。

readelf -h libQtCore.so 

显示如下:
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - GNU
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x73650
  Start of program headers:          64 (bytes into file)
  Start of section headers:          3106632 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         10
  Size of section headers:           64 (bytes)
  Number of section headers:         32
  Section header string table index: 31
 

        readelf的一些常用参数选项:

  • -h:显示ELF文件的文件头信息。
  • -S:显示ELF文件的节(section)信息。
  • -s:显示ELF文件的符号(symbol)信息。
  • -r:显示ELF文件的重定位(relocation)信息。
  • -x num:显示ELF文件中指定节的十六进制内容,num表示节的索引或名称。
  • -a:显示ELF文件的完整信息,相当于同时使用-h-S-s-r等选项。

你可能感兴趣的:(Linux,linux,运维,服务器)