En un sistema unix / linux, ¿cómo puedo obtener más información sobre un archivo mylib.a?
Pregunta
En este caso particular, estoy tratando de descubrir si un archivo mylib.a es compatible con 32 o 64 bits. Estoy familiarizado con ldd para objetos compartidos (mylib.so), pero ¿cómo inspecciono un archivo .a normal?
Solución
nm " y "ar" le dará información sobre el archivo de la biblioteca.
Otros consejos
$ objdump -G /usr/lib/libz.a In archive /usr/lib/libz.a: adler32.o: file format elf32-i386 ... $ objdump -G /usr/lib64/libz.a In archive /usr/lib64/libz.a: adler32.o: file format elf64-x86-64 ... $ objdump -G /ppc-image/usr/lib/libz.a In archive /ppc-image/usr/lib/libz.a: adler32.o: file format elf32-powerpc ...
Requiere un binutils
con capacidad multilib, pero es bastante sencillo, ¿no?
Estándar '' nm '' y "ar" las utilidades le darán información sobre el archivo.
Para obtener información sobre la capacidad de 32/64 bits del archivo, utilice " ar " para extraer los archivos .o dentro de mylib.a, luego ejecute " file " en los archivos .o para descubrir su tipo, incluido el uso de 32/64 bits.
En el caso general, solo uso la utilidad 'archivo'.