How can I get the architecture of a '.a' file?

前端 未结 5 1438
星月不相逢
星月不相逢 2020-12-24 06:21

I have a .a file from which I want to get architecture information. Running file myFile.a results in file.a: current ar archive. How can I get more

5条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-24 06:47

    You can also skip the ar command and use readelf, via something like:

    readelf -h .a | grep 'Class\|File\|Machine'

    [00:32:15] /usr/lib $ readelf -h libxslt.a | grep 'Class\|File\|Machine'
    File: libxslt.a(attrvt.o)
      Class:                             ELF32
      Machine:                           Intel 80386
    File: libxslt.a(xslt.o)
      Class:                             ELF32
      Machine:                           Intel 80386
    ... #Trimmed this, it goes on a bit
    File: libxslt.a(transform.o)
      Class:                             ELF32
      Machine:                           Intel 80386
    File: libxslt.a(security.o)
      Class:                             ELF32
      Machine:                           Intel 80386
    [00:32:24] /usr/lib $
    

    In case it's relevant, here's the other information that you can get from readelf -h. I just trimmed the above with grep, obviously:

    File: libxslt.a(security.o)
    ELF Header:
      Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
      Class:                             ELF32
      Data:                              2's complement, little endian
      Version:                           1 (current)
      OS/ABI:                            UNIX - System V
      ABI Version:                       0
      Type:                              REL (Relocatable file)
      Machine:                           Intel 80386
      Version:                           0x1
      Entry point address:               0x0
      Start of program headers:          0 (bytes into file)
      Start of section headers:          2548 (bytes into file)
      Flags:                             0x0
      Size of this header:               52 (bytes)
      Size of program headers:           0 (bytes)
      Number of program headers:         0
      Size of section headers:           40 (bytes)
      Number of section headers:         16
      Section header string table index: 13
    

    That output is for one of the object files in libxslt.a, but it gives the same information for each file.

提交回复
热议问题