Three20 & XCode4: неподдерживаемый компилятор 'GCC 4.2' или объявления интерфейса не найдены - PullRequest
1 голос
/ 06 декабря 2011

Более года назад я сделал проект в нашей компании для работы с Three20 и iOS3.1.3.До 4. * работал нормально с некоторыми айфонами.Мне не нужно было ничего исправлять или даже перекомпилировать пакет.Даже позже Retina-дисплей iPhone4 не создавал проблем.

Теперь на iOS5 ipa больше не работает.Поэтому мне пришлось «переустанавливать» все это.

iOS3 -> 5 XCode 3.2 -> 4.2 Three20 (old) -> 1.09 (скачал zip здесь: https://github.com/facebook/three20)

После многих попыток я захотел очистить состояние. Поэтому я удалил старые настройки Three20 в настройках проекта и просто интегрировал их, как указано здесь: http://three20.info/article/2011-03-10-Xcode4-Support снова.

Теперь я получаю:

Проверка зависимостей

Неподдерживаемый компилятор 'GCC 4.2' выбран для архитектуры 'armv6'
Неподдерживаемый компилятор 'GCC 4.2' выбран для архитектуры 'armv7'

В предыдущих попытках я просто изменил компилятор в каждом модуле Three20 на Apple LLVM 4.2 и удалил все упоминания arm6, так как самый старый iPhone для использования теперь 3Gs с 5.0.1. 3G может использовать старый ipa, который работал раньше. Это только изменило ошибки на другие.

Итак, кто-нибудь испытал на себе эти проблемы?

Редактировать: После того, как я удалил все события armv6, «на удивление» толькосекунда

Unsupported-компилятор 'GCC 4.2', выбранный для архитектуры 'armv7'

появляется .. в принципе понятия не имею, НО: сборка для архивирования работ и сборка для симулятора и сейчас работают.только я не могу развернуть настоящий iPhone 4 5.0.1.

Ответы [ 3 ]

3 голосов
/ 22 декабря 2011

Я видел эту проблему раньше с другими проектами.По моему опыту, xCode часто борется со старыми проектами, особенно крупными с другими проектами / фреймворками, связанными.

«Официальный» путь;

  1. попробоватьдля компиляции проекта.
  2. Перейдите к ошибке, щелкнув красный восклицательный знак в центральной консоли.(верхняя середина приложения)
  3. прокрутите вниз в списке слева, найдите красный восклицательный знак.
  4. щелкните проект (синий значок, возможно расширение .xcodeproj) в спискеналево, что дает ошибку.
  5. перейдите в «Настройки сборки»
  6. Найдите параметр «Компилятор для C / C ++ / Objective-C» в категории «Опции сборки».

  7. Измените компилятор с GCC 4.2 на поддерживаемый.(Сейчас: Apple LLVM или LLVM GCC)

Этот подход может или не может работать для вас.Это может быть моим ограниченным пониманием, но кажется, что в некоторых случаях старые настройки «остаются» без доступа через GUI, но они все еще могут вызывать проблемы.Более того, если эта ошибка появляется в фреймворке, а не в проекте, вам не повезло, поскольку вы не всегда можете изменить настройки для них.

В этом случае:

Грязный путь;

  1. Используйте 'grep', чтобы найти неправильные настройки, должно быть в файлах .pbxproj.Откройте командную строку вашего проекта и выполните:

    grep -r "GCC_VERSION" * | grep 4.2

  2. Вы найдете следующие строки:

    GCC_VERSION = 4.2;

  3. Откройте файл в своем любимом текстовом редакторе и измените на:

    GCC_VERSION = com.apple.compilers.llvmgcc42;

    • или если вы хотите поэкспериментировать споследний компилятор:

    GCC_VERSION = com.apple.compilers.llvm.clang.1_0;

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

Если это не поможет либо ;

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

1 голос
/ 07 декабря 2011

Убедитесь, что вы также изменили настройки компилятора для расширений. Если он по-прежнему говорит «Неподдерживаемый компилятор», вы, вероятно, забыли изменить его в одном из трех 20 подпроектов.

Кроме того, проверьте, что у вас есть armv6 и armv7 под архитектурами

Можете ли вы выслать скриншот с вашими настройками сборки?

0 голосов
/ 22 января 2012

Я решил эту проблему, удалив старую папку «Build» внутри папки Three20.

...