2012-02-13 3 views
8

Avevo un file di libreria statico. Come posso vedere se è compilato in i386 o in piattaforma arm. Grazie.Come visualizzare la piattaforma di compilazione di un file di libreria statico

+1

ti sei dimenticato di menzionare quale sistema operativo si dispone. –

+0

mac os ... scusate – seanxiaoxiao

+0

Vedere la mia risposta quindi - all'insaputa di molti (anche se, come programmatore, probabilmente lo so) Mac OS X è un sistema Unix a tutto campo :) Il comando file –

risposta

11

In Unix (e simili - per esempio, Linux o Minix) sistemi, è possibile utilizzare l'utilità di "file":

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

(il % indica una shell e non fa parte del comando)

Per quanto riguarda Windows, non so se è già presente un comando incorporato, ma in caso contrario, è possibile trovare l'utilità in questa pagina: http://gnuwin32.sourceforge.net/packages.html (il pacchetto file è circa 1/3 in basso nella pagina) .

EDIT: Per le librerie statiche (.a file), è necessario prima di estrarli e controllare un file .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> 

ATTENZIONE:ar -x ... inquinerà la directory locale, in modo da essere sicuri di copiare i file da qualche altra parte (per esempio /tmp/something) prima!

Sono sicuro che c'è un modo per controllare direttamente in questi file, ma questo funziona altrettanto bene!

+1

non fornisce molte informazioni per una statica libreria (.a file). –

+0

Davanti a voi :) –

0

file fornisce informazioni generali sulla piattaforma su linux.

ad es.

file /usr/lib/libfoo.a 

o per un binario eseguibile

file `which foo` 
0

Usa file o objdump. file funziona sempre ma objdump ti fornirà informazioni più dettagliate su librerie e archivi e file eseguibili.

7

objdump è tuo amico;)

$ objdump -f lib/lib.a 
+1

Grazie :-D semplicemente semplicemente di copiare il file, quindi archiviarlo e infine usare 'file'. – olibre

+0

objdump è migliore perché l'output del file può essere un po 'limitato. – robert

Problemi correlati