Pergunta

Nesse caso em particular, estou tentando descobrir se um arquivo mylib.a é compatível com 32 ou 64 bits. Estou familiarizado com o LDD para objetos compartilhados (mylib.so), mas como faço para inspecionar um arquivo.

Foi útil?

Solução

"NM" e "AR" fornecerão algumas informações sobre o arquivo da biblioteca.

Outras dicas

$ 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

...

Requer uma capacidade multilibe binutils, mas é bem direto, não é?

Os utilitários padrão "NM" e "AR" fornecerão informações sobre o arquivo.

Para aprender sobre a capacidade de 32/64 bits do arquivo, use "AR" para extrair os arquivos .o dentro do mylib.a, depois execute "arquivo" nos arquivos .o para descobrir seu tipo, incluindo o uso de 32/64 bits.

No caso geral, eu apenas uso o utilitário 'arquivo'.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top