Мне интересно проверить, создана ли данная статическая библиотека iPhone для ARM или Intel.
Это больше любопытство, чем что-либо еще. Есть ли для этого какой-нибудь специальный инструмент для Mac OS X или BSD? В этом посте приводится пример для Linux.
file
наверное тебе скажу.otool
конечно должен уметь. Ноfile
сначала я бы попробовал , напримерПример с архивом:
источник
file
часто не получается.Как уже говорилось ранее,
file
не всегда получается.otool -hv -arch all
это, вероятно, наиболее близкая вещь, которая гарантированно работает - она предоставляет информацию об архитектуре для каждого отдельного объектного файла в библиотеке.Пример:
источник
В качестве альтернативы я нашел, что
objdump
может хорошо работать. Например, в своей среде я создаю архивы библиотек с помощью vxWorks, и мне нужно связать их с другими проектами. Чтобы проверить правильность архитектуры архива, я мог бы сделать что-то вроде следующего (синтаксис bash):Этот пример не совсем правильный, потому что некоторые строки ДЕЙСТВИТЕЛЬНО появляются, в которых не говорится elf32-sparc-vxworks, но это достаточно легко адаптировать.
Одним из приятных преимуществ этого является то
objdump
, что вариант с аналогичным названием установлен в большинстве операционных систем * nix, тогда как инструменты, предложенные в других ответах, нет.edit Мне только что пришло в голову, что OP спрашивал о OSX. Мои извинения.
источник
objdump
вы можете установить GNU Binutils через MacPorts. Чтобы увидеть все доступные архитектуры, просто выполнитеport search binutils
. Инструменты для собственной разработки имеют префиксы, чтобы избежать конфликтов (например,gobjdump
вместоobjdump
). Возможно, вы захотите создать псевдоним для удобства.Этот сценарий bash поможет вам программно получить список архитектур в переменной.
list_archs.sh:
Пример использования:
источник