Как проверить, создана ли статическая библиотека для 64-битной архитектуры?
Я только что создал статическую библиотеку для iOS с настройкой сборки для архитектур, установленной на $(ARCHS_STANDARD_INCLUDING_64_BIT)
,
Я хочу убедиться, что библиотека.a правильно включает эту архитектуру, но когда я запускаю lipo -info
на этом я вижу:
Архитектуры в толстом файле: library.a: armv7 armv7s (cutype (16777228) cpusubtype (0))
Значит ли это, что arm64 не включен? Если команда липо не может сказать мне, есть ли другой способ сказать?
Я использую Xcode 5 с установленными последними инструментами командной строки.
3 ответа
Да, есть срез arm64. Чтобы увидеть это, вам нужно использовать lipo
из набора инструментов iOS, а не из хост-системы (которая не знает о arm64):
xcrun -sdk iphoneos lipo -info $(FILENAME)
Старый добрый file
может сделать тоже самое:
$ file libTestFlight.a
libTestFlight.a: Mach-O universal binary with 5 architectures
libTestFlight.a (for architecture armv7): current ar archive random library
libTestFlight.a (for architecture armv7s): current ar archive random library
libTestFlight.a (for architecture i386): current ar archive random library
libTestFlight.a (for architecture x86_64): current ar archive random library
libTestFlight.a (for architecture cputype (16777228) cpusubtype (0)): current ar archive random library
Кажется, никто в Apple не удосужился добавить c64 для arm64 file
, еще.
Интересно, что в видео-обсуждениях iOS 7 ("Архитектура современных приложений, часть 2", PDF, стр. 35) они показывают результаты работы рабочего файлового инструмента: