Je souhaite vérifier si une bibliothèque statique iPhone donnée a été créée pour ARM ou Intel.
C'est plus de la curiosité qu'autre chose. Existe-t-il une sorte d'outil spécifique à Mac OS X ou BSD pour faire cela? Cet article donne un exemple sous Linux.
file
vous le dira probablement.otool
devrait certainement être en mesure de le faire. Mais j'essaierais d'file
abord, par exempleExemple avec archive:
la source
file
échoue souvent.Comme mentionné précédemment,
file
ne fonctionne pas toujours.otool -hv -arch all
est probablement la chose la plus proche qui est garantie de fonctionner - il donne des informations d'architecture pour chaque fichier objet de la bibliothèque.Exemple:
la source
Comme alternative, j'ai trouvé que
objdump
cela fonctionnait bien. Par exemple, dans mon environnement, je construis des archives de bibliothèque avec vxWorks et je dois les lier à d'autres projets. Pour tester si l'archive est la bonne architecture, je pourrais faire quelque chose comme ce qui suit (syntaxe bash):Cet exemple n'est pas exactement correct, car certaines lignes apparaissent qui ne disent pas elf32-sparc-vxworks, mais il est assez facile d'adapter cela.
Un avantage intéressant de ceci est que
objdump
, ou une variante du même nom, est installée sur la plupart des systèmes d'exploitation * nix, alors que les outils suggérés dans d'autres réponses ne le sont pas.edit Il m'est venu à l'esprit que l'OP demandait sur OSX. Mes excuses.
la source
objdump
vous pouvez installer GNU Binutils via MacPorts. Pour voir toutes les architectures disponibles, exécutez simplementport search binutils
. Les outils de développement natif sont préfixés pour éviter les conflits (par exemplegobjdump
au lieu deobjdump
). Vous pouvez créer un alias pour plus de commodité.Ce script bash vous aidera à obtenir par programme une liste d'architectures dans une variable.
list_archs.sh:
Exemple d'utilisation:
la source