Вопрос

До финала Xcode 4 (я использовал 3. Latest и 4 Gm для того времени, когда это было доступно) этого не произошло. Когда я обновлен до окончательной версии Xcode 4, я начал получать ошибку связывания, пытаясь связать версию ARMV7 с моей библиотекой Non ARMV7 (мой проект установлен со стандартным ARMV6 ARMV7 ARMV7):

ld: warning: ignoring file ../bin/iOS static/arm/libssl.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../bin/iOS static/arm/libcrypto.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7: -- list of symbols --

Версия ARMV6 просто отлично компилируется, но общий процесс компиляции не выполняется с 77 ошибками ссылки.

Я понимаю, что это ожидаемое поведение, оно не будет связываться с ARMV7 с ARMV6 LIB. Исправление устанавливает мой проект только на ARMV6. Мой вопрос здесь: почему это работало в предыдущих версиях Xcode?

Если я начну только на ARMV6, я начинаю получать это предупреждение:

Check dependencies

[BWARN]warning: all apps should include an armv7 architecture (current ARCHS = "armv6").

Мне не нравится видеть предупреждения :-) У кого-нибудь есть похожие проблемы?

Спасибо,

Фернандо

Это было полезно?

Решение

Я только что повернул активную архитектуру сборки только в «Да» в проекте -> Настройка сборки -> Вкладка «Архитектуры».

Другие советы

В iOS SDK 4.3 похоже, что линкер просто откажется использовать библиотеку ARMV6 в двоичном ARMV7 - это было раньше.

Вот почему мне пришлось обновить http://code.google.com/p/ios-static-libraries/ Проект для создания версий ARMV6 и ARMV7 библиотек.

Я добавил стороннюю структуру с некоторыми демонстрационными классами в проект, но после успешного внедрения я удалил эти демонстрационные классы, и с тех пор ошибка начала появлятьсяОшибка"LD: ........., файл универсален, но не содержит (n) срез ARMV6 для архитектуры ARMV6"

После того, как я почесал голову на целый день, я нашел это решение на следующее утро, может быть, полезно для других приятелей для iPhone, потому что я знаю боль

Цели-> «Цель вашего проекта»-> Получить информацию-> Создайте активную архитектуру только установить на да

Вот и все..

Была та же проблема. Но причина была другой, я полагаю. Я использовал библиотеку. Файл, созданный для симулятора, и пытался запустить его на устройстве. Познакомился с тем, что мне нужны разные файлы для симулятора и устройства. Я надеюсь, что это помогает кому-то ;)

Хотя я до сих пор не знаю, почему это начало происходить только в финальной версии Xcode 4, я обнаружил, что мои внешние LIBS (SSL и Crypto) были составлены против ARMV6 и ARMV7 в проекте Google Code очень несколько дней назад:

http://code.google.com/p/ios-static-libraries/

Это решит проблему, если вы определите два разных пути поиска библиотеки: один для ARMV6, один для ARMV7.

Спасибо,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top