У меня есть толстая статическая библиотека, скомпилированная для armv7 и i386. В моем проекте iPhone/iPad все работает нормально, но я могу установить свое приложение только на устройство armv7, поэтому iPhone 3gs и выше...
Есть способ запустить мой проект на armv6, чтобы я мог установить его на ipod touch и старую версию iphone (также, если я отключу использование библиотеки armv7).
Я пробую это:
#ifdef _ARM_ARCH_7
... //include and use of armv7 library
#else
... //not include armv7 library
#endif
Но когда я компилирую свой проект, у меня возникает ошибка ссылки...
Команда /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang++ завершилась неудачно с кодом выхода 1
Итак, есть способ запустить мое приложение на всех типах устройств, но связать определенную библиотеку при компиляции для armv7???
Спасибо за помощь!
1 ответ
Вам нужно слабо связать эту библиотеку. Откройте настройки сборки и найдите Other Linker Flags. Вам нужно добавить две записи, первая — «-weak_library», вторая — путь к файлу библиотеки (возможно, вам придется поискать, что передается компоновщику, чтобы найти, что это такое).
Они должны быть в таком порядке, поскольку этот список превращается в параметры для компоновщика в том порядке, в котором они представлены.
Похожие вопросы
Связанные вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.
-l
(например,-l libmyFatLibrary
) в настройках проекта или перетащили статическую библиотеку в список файлов библиотек и фреймворков, которые нужно связать?