Su un sistema unix / linux come posso saperne di più su un archivio mylib.a?
Domanda
In questo caso particolare sto cercando di scoprire se un file mylib.a è compatibile a 32 o 64 bit. Conosco ldd per oggetti condivisi (mylib.so) ma come posso controllare un normale archivio .a?
Soluzione
" nm " e "ar" ti darà alcune informazioni sull'archivio della biblioteca.
Altri suggerimenti
$ 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 ...
Richiede un binutils
con capacità multilib, ma è piuttosto semplice, non è vero?
Standard " nm " e "ar" i programmi di utilità ti forniranno informazioni sull'archivio.
Per conoscere l'abilità a 32/64 bit dell'archivio usa " ar " per estrarre i file .o all'interno di mylib.a, quindi eseguire " file " sui file .o per scoprire il loro tipo incluso l'utilizzo a 32/64 bit.
Nel caso generale, utilizzo semplicemente l'utilità 'file'.