Em um sistema Unix/Linux, como posso aprender mais sobre um arquivo mylib.a?
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.
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