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?

È stato utile?

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'.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top