¿Cómo puedo saber qué archivos son parte de mi archivo .a? ¿Qué comando debería usar?Cómo enumerar archivos dentro de un archivo .a
Respuesta
Si no quitó los símbolos, puede usar nm
para ver los nombres de los archivos de objeto (.o
).
$ nm foo.a
foo.a(objectFile1.o):
0000000000000000 T _function1
foo.a(objectFile2.o):
0000000000000000 T _function2
Esta salida será diferente en los diferentes sistemas operativos. Por ejemplo, aquí está la salida de los símbolos dentro libz.a
en un sistema Ubuntu:
$ nm libz.a | grep ".o:"
adler32.o:
compress.o:
crc32.o:
gzio.o:
uncompr.o:
deflate.o:
trees.o:
zutil.o:
inflate.o:
infback.o:
inftrees.o:
inffast.o:
Cada uno de los mayores de 12 .o archivos eran unidades de traducción en el código original, compilado con la opción -c
a gcc. Usé grep
para ignorar los innumerables símbolos definidos y referenciados en cada uno de los archivos objeto. Después de la compilación, estos archivos de objetos se combinaron en una biblioteca estática con ar
.
ar
también se pueden extraer los archivos del objeto. En la misma libz.a
:
$ ar xv libz.a
x - adler32.o
x - compress.o
x - crc32.o
x - gzio.o
x - uncompr.o
x - deflate.o
x - trees.o
x - zutil.o
x - inflate.o
x - infback.o
x - inftrees.o
x - inffast.o
La opción es para x
extracto y v
es prolijo, que imprime el nombre del archivo de objeto a medida que se extrae.
Esto funcionaba con el siguiente comando: nm <> | grep ".o" | sed "s /. (// g" | sed "s /). // g" | uniq
creo que sería más fácil de usar ar
para (archivos manipulación) lo que se supone
ar t foo.a
De página del manual:
-t lista de los archivos especificados en el orden en que aparecen en el archivo, cada uno en una línea separada. Si no se especifican archivos, se enumeran todos los archivos en el archivo.
man 1 ar
para obtener más información.
- 1. ¿Cómo enumerar todos los archivos modificados en un volumen oculto?
- 2. ¿Cómo enumerar todas las extensiones de archivos binarios dentro de un árbol de directorios?
- 3. Enumerar dentro de una enumeración
- 4. ¿Cómo enumerar todas las ventanas dentro de un proceso?
- 5. Cómo ejecutar múltiples archivos .BAT dentro de un archivo .BAT
- 6. ¿Cómo accedo a un archivo de configuración dentro del contenedor?
- 7. archivo gzip con varios archivos dentro de
- 8. Acceso a un archivo dentro de un archivo .jar
- 9. Accediendo a archivos dentro del archivo de expansión obb
- 10. ¿Cómo acceder a los archivos dentro de un archivo egg de python?
- 11. Leer archivos de una carpeta dentro de un archivo jar
- 12. Actualización de archivos dentro de un archivo WAR existente
- 13. ¿Cómo enumerar los archivos de un proyecto de equipo usando tfs api?
- 14. Cómo enumerar los símbolos en un archivo .so
- 15. ¿Cómo enumerar ensamblajes dentro de AggregateCatalog o DirectoryCatalog en MEF?
- 16. ¿Cómo leer un archivo .properties dentro de un archivo .xsl?
- 17. Cómo recursivamente enumerar todos los archivos y directorios
- 18. Modificar un archivo dentro de un jar
- 19. Incluyendo un archivo .js dentro de un archivo .js
- 20. ¿Cómo puedo enumerar a través de JObject?
- 21. Leyendo un archivo zip dentro de un archivo jar
- 22. Linux cómo agregar un archivo a una carpeta específica dentro de un archivo zip
- 23. Carga de archivos a través de AJAX dentro de JQuery
- 24. ¿Cómo enumerar todas las entradas de un archivo tar en Java?
- 25. Python usando enumerar dentro de la lista de comprensión
- 26. ¿Agregar archivos a un archivo ZIP?
- 27. llamando a archivos por lotes dentro de nant
- 28. ¿Cómo cargo un archivo/directorio a una carpeta dentro de un depósito?
- 29. ¿Cómo puedo imprimir un conjunto de archivos en un archivo, un nombre de archivo por línea?
- 30. Hacer referencia a un esquema XSD dentro del archivo jar
Esta lista también incluye todos los objetos utilizados dentro del archivo. ¿Cuál es el comando para imprimir solo los archivos dentro de .a. Por ejemplo, los archivos .o dentro de .a. – Abhinav
Eso es exactamente lo que 'nm' te dice. Por ejemplo, en mi máquina Ubuntu: 'nm /usr/lib/libz.a | grep ".o:" 'regresa con 12 archivos' .o' que comprenden 'libz.a'. ¿Es esto lo que quieres decir? – greg
Sí, tienes razón. Pero usando nm my.a | grep ".o:" Me devuelve el método llama a algunos de los archivos .o internos, pero no enumera todos los archivos .o. ¿Estoy haciendo algo mal aquí? – Abhinav