Estou interessado em verificar se uma determinada biblioteca estática do iPhone foi criada para ARM ou Intel.
É mais curiosidade do que qualquer coisa. Existe algum tipo de ferramenta específica para o Mac OS X ou BSD para fazer isso? Este post fornece um exemplo no Linux.
file
provavelmente lhe dirá.otool
certamente deve ser capaz. Mas eu tentariafile
primeiro, por exemploExemplo com arquivo:
fonte
file
muitas vezes falha.Como mencionado anteriormente,
file
nem sempre funciona.otool -hv -arch all
é provavelmente a coisa mais próxima que é garantida que funcione - fornece informações de arquitetura para cada arquivo de objeto na biblioteca.Exemplo:
fonte
Como alternativa, eu descobri que
objdump
pode funcionar bem. Como exemplo, no meu ambiente, construo arquivos de biblioteca com o vxWorks e preciso vinculá-los a outros projetos. Para testar se o arquivamento é a arquitetura correta, eu poderia fazer algo como o seguinte (sintaxe do bash):Este exemplo não é precisamente correto, porque algumas linhas aparecem que não dizem elf32-sparc-vxworks, mas é fácil o suficiente para adaptar isso.
Uma boa vantagem disso é que
objdump
, ou uma variante com nome semelhante, é instalada na maioria dos sistemas operacionais * nix, enquanto as ferramentas sugeridas em outras respostas não.edit Apenas me ocorreu que o OP estava perguntando no OSX. Me desculpe.
fonte
objdump
você pode instalar o GNU Binutils via MacPorts. Para ver todas as arquiteturas disponíveis, basta executarport search binutils
. As ferramentas para o desenvolvimento nativo são prefixadas para evitar conflitos (por exemplo, emgobjdump
vez deobjdump
). Você pode criar um alias por conveniência.Esse script bash o ajudará programaticamente a obter uma lista de arquiteturas em uma variável.
list_archs.sh:
Exemplo de uso:
fonte