Ошибка соединения XCode при предназначении armv7

Я уже провел бесчисленные часы, ломающие голову над этим, используя поиски Google и другие вопросы о Переполнении стека напрасно.

У меня есть повсеместное применение iPhone/iPad, которое, кажется, компилирует прекрасный, когда цель является armv6. Однако, когда устройство является iPad, я получаю это предупреждение:

warning: building for SDK 'Device - iPhone OS 3.2' requires an armv7 architecture.

Достаточно странно приложение все еще работает большой на iPad несмотря на это предупреждение. Однако я действительно хочу сделать вещи "правильный путь", что когда-либо, который означает в этом случае. Когда я переключаю целевую архитектуру на armv7, я получаю соединение ошибок:

  "___restore_vfp_d8_d15_regs", referenced from:
     *redacted*

  "___save_vfp_d8_d15_regs", referenced from: 
     *redacted*

ld: symbol(s) not found

collect2: ld returned 1 exit status

"Отредактированные" части ошибок являются ссылками на статическую библиотеку, с которой я пытаюсь связаться.

Вот то, что я попробовал от многих предложений онлайн. Каждый из них был предложен несколько раз без любого объяснения, которое приводит меня полагать, что никто вполне не понимает эту проблему:

"Никогда не используйте выпадающее меню в верхнем левом углу окна XCode для выбора цели. Вместо этого установите это для Базирования SDK и затем Основы SDK к iPhone OS 3.0 в целевой конфигурации. Установите целевое устройство на свою предпочтительную цель (iPad, iPhone OS 3.2 в моей ситуации.)"

Это приводит к ошибке "Библиотека, не найденная для-lcrt1.3.1.o"

"Удостоверьтесь, что GCC не связывается против неверной версии стандартной библиотеки. (Необходимо будет удостовериться, что LIBRARY_SEARCH_PATH не имеет неправильного пути в нем.)"

Мой LIBRARY_SEARCH_PATH уже пуст, таким образом, это не кажется релевантным.

"Попытайтесь компилировать с GCC 4.0, а не GCC 4.2".

Я получаю синтаксическую ошибку в заголовочном файле UIKit. Ошибка является "Синтаксической ошибкой перед маркером 'AT_NAME'". Строка является "UIKIT_EXTERN @interface UILocalizedIndexedCollation: NSObject".

Другой проект компилирует очень хорошо с теми же целевыми настройками, который действительно заставляет меня подвергнуть сомнению свою исправность. Я мог иметь дело с поврежденным проектом XCode?

Если кто-либо знает то, что на самом деле происходит и имеет ссылку или не возражает объяснять это, я был бы так очень благодарен.

Удачи!

5
задан Tom 10 May 2010 в 17:38
поделиться

1 ответ

VFP между ARMv7 и ARMv6 отличается по-разному. В ARMv7 обычно предпочтительнее использовать NEON. Проблема в том, что ваша статическая библиотека зависит от VFP в ARMv6 - вам нужно либо скомпилировать библиотеку на ARMv7, либо оставить все приложение на ARMv6.

Возвращаться к GCC 4.0 глупо - поддержка ARMv7 в то время практически отсутствовала, если только Apple не перенесла ее обратно.

4
ответ дан 14 December 2019 в 19:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: