Tengo un archivo .a del cual quiero obtener información de arquitectura. Ejecutando file myFile.a
resultados en file.a: current ar archive
. ¿Cómo puedo obtener más información sobre qué arquitectura contiene el archivo?¿Cómo puedo obtener la arquitectura de un archivo '.a'?
Respuesta
También se puede saltar el comando ar
y utilizar readelf, a través de algo así 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, esta es la otra información que puede obtener de readelf -h
. Acabo recortado con lo anterior 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
que la producción es para uno de los ficheros objeto en libxslt.a
, pero le da la misma información para cada archivo.
extraer los archivos de objeto del archivo y inspeccionarlos con el archivo (1), nm (1), etc.
objdump
es otra opción:
objdump -a file.a|grep 'file format'
Uso
lipo -info libExample.a
Será Quién es la arquitectura para construir. Otras funciones como otool o archivo no dan la respuesta exacta y, a veces, es prolija para obtener la información correcta.
lipo parece ser específico de OS X. – MetalGodwin
Sugeriría usar objdump en lugar de lipo. objdump proporciona información detallada que lipo.
- 1. ¿Cómo puedo obtener la máscara de permiso de un archivo?
- 2. ¿Cómo puedo obtener la arquitectura del procesador de un dll de ensamblaje?
- 3. ¿Cómo puedo obtener la fuente de un archivo javascript modificado?
- 4. ¿Cómo puedo obtener un CGImageRef de un archivo?
- 5. Usando .NET 2.0, ¿cómo puedo FTP a un servidor, obtener un archivo y eliminar el archivo?
- 6. ¿Cómo puedo obtener todas las imágenes de un archivo qrc?
- 7. ¿Cómo puedo obtener las capas de un archivo PSD?
- 8. ¿Para qué puedo usar la arquitectura HMVC?
- 9. Arquitectura orientada a servicios: cómo la definiría
- 10. ¿cómo puedo obtener el ícono de archivo?
- 11. PHP: ¿cómo puedo obtener la fecha de creación del archivo?
- 12. ¿Cómo puedo determinar la arquitectura de destino de la biblioteca estática (.a) en Mac OS X?
- 13. ¿Cómo puedo convertir un puntero de archivo (FILE * fp) a un descriptor de archivo (int fd)?
- 14. ¿Puedo controlar la arquitectura (32 bits frente a 64 bits) al compilar un ejecutable de pyinstaller?
- 15. ¿Puedo obtener la fecha cuando se modificó un archivo HTTP?
- 16. ¿Cómo puedo obtener un archivo sin eliminarlo del disco?
- 17. Determine la arquitectura de un proceso
- 18. ¿Ir a puerto a la arquitectura AVR?
- 19. ¿Cómo puedo forzar a subversión a enviar un archivo desactualizado?
- 20. Cómo obtener un archivo Makefile de qmake
- 21. ¿Cómo obtener un puntero ARCHIVO desde un descriptor de archivo?
- 22. ¿Portar un kernel a una arquitectura diferente?
- 23. Carrierwave cómo obtener la extensión de archivo
- 24. ¿Cómo puedo usar la API de Appstore para obtener la lista de top100? ¿Cuál es la arquitectura común para construir un sitio web de aplicaciones de appstore?
- 25. Cómo obtener acceso al archivo y a la pantalla/terminal
- 26. ¿cómo puedo obtener la cantidad de fotogramas por segundo de un archivo gif?
- 27. ¿Cómo obtener la ubicación (src) de un archivo javascript?
- 28. SVN: ¿cómo obtener la primera revisión de un archivo?
- 29. ¿Cómo puedo obtener el seguimiento de la pila lua desde un archivo central utilizando gdb
- 30. Cómo hacer un preproyecto Revisión de arquitectura
Recomienda agregar 'Máquina' a la lista allí. Eso incluirá información sobre la CPU específica para la que están hechos los archivos objeto, en lugar de solo si es de 32 o 64 bits o lo que sea. – cHao
@cHao: Sí, yo también pensé en eso. Estoy haciendo otra edición (y agregué la salida completa de 'readelf -h'). – eldarerathis
¡Gracias! Esto es exactamente lo que estaba buscando. – Mike