linux - tag - ¿Cómo puedo obtener la arquitectura de un archivo ''.a''?
mp3 tag linux (5)
Tengo un archivo .a del que quiero obtener información de arquitectura. La ejecución del file myFile.a
da file myFile.a
resultado file myFile.a
file.a: current ar archive
. ¿Cómo puedo obtener más información sobre qué arquitectura contiene el archivo?
También puede omitir el comando ar
y usar readelf , a través de algo como:
readelf -h <archive>.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 $
En caso de que sea relevante, aquí está la otra información que puede obtener de readelf -h
. Acabo de recortar lo anterior con grep
, obviamente:
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
Esa salida es para uno de los archivos de objeto en libxslt.a
, pero proporciona la misma información para cada archivo.
Utilizar
lipo -info libExample.a
Será para quién la arquitectura que construye. Otras funciones como el otool o el archivo no dan la respuesta exacta y, a veces, se detallan para obtener la información correcta.
Yo sugeriría usar objdump en lugar de lipo. objdump proporciona información detallada que lipo.
extraiga los archivos de objetos del archivo y examínelos con el archivo (1), nm (1), etc.
objdump
es otra opción:
objdump -a file.a|grep ''file format''