2012-02-13 6 views

Respuesta

11

En Unix (y similares - por ejemplo, Linux o Minix) sistemas, puede utilizar el "archivo" utilidad:

%file /lib/libc.so.7 
libc.so.7: ELF 64-bit LSB shared object, x86-64, version 1 (FreeBSD), dynamically linked, stripped 

(el % indica el intérprete de comandos y no es parte del comando)

En cuanto a Windows, no sé si ya hay un comando incorporado, pero si no, puede encontrar la utilidad en esta página: http://gnuwin32.sourceforge.net/packages.html (el paquete file está a aproximadamente 1/3 de la página) .

EDIT: Para las bibliotecas estáticas (.a archivos), primero tiene que extraer de ellos y comprobar un archivo .o:

%cp /usr/lib/libchipmunk.a . 
%ar -x libchipmunk.a 
%file *.o 
chipmunk.c.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped 
<snip> 

ADVERTENCIA:ar -x ... contaminará el directorio local, por lo Asegúrese de copiar los archivos en otro lugar (digamos /tmp/something) primero!

Estoy seguro de que hay una manera de verificar directamente estos archivos, ¡pero esto funciona igual de bien!

+1

El comando de archivo no proporciona tanta información para un estático biblioteca (archivos .a). –

+0

Delante de usted :) –

0

file le brinda información general acerca de la plataforma en Linux.

p. Ej.

file /usr/lib/libfoo.a 

o para un binario ejecutable

file `which foo` 
0

Uso file o objdump. file siempre funciona pero objdump le dará información más detallada acerca de bibliotecas y archivos y ejecutables.

7

objdump es su amigo;)

$ objdump -f lib/lib.a 
+1

Gracias: simplemente que copiar el archivo, luego archivarlo y finalmente usar 'file'. – olibre

+0

objdump es mejor porque la salida del archivo puede ser un poco limitada. – robert

Cuestiones relacionadas