Используйте gcc 4.2 в Xcode 4.2 и iOS SDK 5.0 - PullRequest
4 голосов
/ 14 октября 2011

Сегодня я только что обновился до Xcode 4.2 и iOS SDK 5.Но все выглядит иначе с новыми компиляторами.

Теперь есть две опции «Компилятор для C / C ++ / Objective-C», «Apple LLVM compiler 3.0» и «LLVM GCC 4.2».GCC 4.2 отсутствует.

Компилятор Apple LLVM 3.0, он собирается очень быстро (мне это нравится), выдает мне 999+ предупреждений, и моя игра больше не может запускаться.Похоже, что есть некоторые различия в памяти, и он вылетает при загрузке скриптов нашей игры.

LLVM GCC 4.2, черт побери, медленный, я все еще не могу закончить одну сборку за часами на моей машине i7.

И еще одна вещь - наш движок использует для компоновки командные строки gcc (вместо xcode).

Итак, это приводит к одному вопросу, как я могу использовать gcc 4.2 в Xcode 4.2 ?Это вообще возможно?

Ответы [ 3 ]

4 голосов
/ 29 октября 2011

Вот способ включить компиляцию с gcc 4.2 в xcode 4.2 .Большая часть этого выполняется через командную строку, поэтому, когда вы видите такие строки: [ 15:30 jon@MacBookPro / ]$, вам нужно открыть Terminal и запустить команду после $.

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

  1. Скачать - но сделать не установить пока - xcode_4.1_for_lion.dmg или xcode_4.1_for_snow_leopard.dmg

  2. Теперь выполните следующие шаги для установки Xcode 4.1 в /Developer-4.1:

    1. Резервное копирование рабочего каталога /Developer (где Xcode 4.2

  3. Запустите установщик Xcode 4.1, используя расположение установки по умолчанию (/Developer)

  4. Переместитеновая установка Xcode 4.1 в /Developer-4.1:

    [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
    
  5. Переместить каталог разработчика Xcode 4.2 обратно в /Developer:

    [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
    

Изменить тФайл Xcode 4.2 GCC 4.2.xcspec для получения gcc 4.2 для отображения в списке параметров компилятора [1] :

[ 15:30 jon@MacBookPro / ]$ sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2 (Plausible Blocks).xcplugin/Contents/Resources/GCC 4.2.xcspec"
  • Изменение строк 41 и 42 от этого:

    ShowInCompilerSelectionPopup = NO;
    IsNoLongerSupported = YES;
    
  • На это:

    ShowInCompilerSelectionPopup = YES; 
    IsNoLongerSupported = NO;
    

Резервное копирование каталогов Xcode 4.2 iOS / Simulator Framework usr:

[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr.backup
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneSimulator.platform/Developer/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr.backup

Копирование каталогов Xcode 4.1 iOS / Simulator Framework usr в Xcode 4.2:

[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr

Скопируйте каталоги библиотеки gcc и info iOS SDK из Xcode 4.1 в Xcode 4.2 [2] :

[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/gcc /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/gcc
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/info /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/info

Компиляция с использованием gcc-4.2!

Screenshot of CGG 4.2 in xcode 4.2


Этосообщение в блоге, которое я написал с немного большей информацией об этом процессе.Не стесняйтесь оставлять комментарии в блоге, если у вас возникнут какие-либо проблемы или у вас возникнут вопросы.


[1] При открытии из командной строки(используя что-то вроде vi, emacs, nano и т. д.) убедитесь, что путь заключен в кавычки "/ long path / с пробелами / в нем / file.xcspec" или escapeпробелы / некоторые / длинные \ пути / с \ пробелами / в \ it / file.xcspec

[2] Это необходимо, поскольку SDK для iPhoneOS.platform имеет свои отдельные каталоги /usr/lib, а SDK для iPhoneSimulator.platform не

3 голосов
/ 14 октября 2011

В WWDC этого года Apple заявила, что GCC больше не доступен в XCode 4.2. Однако они заявили, что компилятор LLVM поддерживает те же ключи командной строки, что и GCC.

1 голос
/ 21 августа 2012

Я пытался обновить это для прикладной версии XCode.Это покажет, как установить Xcode 4.4.x с полной поддержкой gcc.

Вам нужно: Mac OSX Lion - это важно, не пытайтесь с Mountain Lion!

Вам нужно: aкопия Xcode 4.1 для Lion.Загрузите с Apple с вашей учетной записью dev.Пока не устанавливайте.

Теперь установите Xcode 4.4.x из Apple через Mac App Store.

После этого у вас будет xcode 4.4.x в каталоге приложений.

В зависимости от прав пользователя вам придется подтвердить многие действия паролем администратора.Просто сделайте это, когда это необходимо.Если вы повредите свою систему, вы окажетесь сами по себе (хотя этого не должно произойти, поскольку Xcode был применен).

Откройте Xcode 4.4.x, щелкнув правой кнопкой мыши и «Показать содержимое пакета», а затем перейдите кплагин gcc 4.2 здесь:

/ Applications / Xcode.app / Contents / PlugIns / Xcode3Core.ideplugin / Contents / SharedSupport / Разработчик / Библиотека / Xcode / Плагины / GCC 4.2.xcplugin / Contents / Resources /

Откройте файл gcc 4.2.xcspec в текстовом редакторе.

Посмотрите на строки 41 и 42. Убедитесь, что они выглядят именно так, как показано здесь (значения будут изменены в новой установке).

ShowInCompilerSelectionPopup = YES;
IsNoLongerSupported = NO;

Сохраните и закройте.

Установите Xcode 4.1 для Lion.

Теперь перейдите в каталог разработчика в корне вашего загрузочного диска.

Перейдите к /Developer/Platforms/iPhoneOS.platform/Developer/usr/

Скопируйте каталог usr с помощью команды -c

и вернитесь к xcode 4.4.x

.в: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform / Developer /

вставьте каталог usr с помощью команды -v

, теперь лев попытается объединить эти два каталога.Убедитесь, что нажали «Keep Newer»

. Повторите с источником: /Developer/Platforms/iPhoneSimulator.platform/Developer/usr И выберите target: /Applications/Xcode.app/Contents/Developer/Platforms/usr

Снова объединить и «сохранить новее»

Перейдите по адресу: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib

Теперь скопируйтекаталог gcc, выбрав его и используя команду -c

Перейдите в приложение Xcode 4.4.x:

/ Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer/SDKs/iPhoneOS5.1.sdk/usr/lib

Вставьте каталог gcc с помощью команды -v

Повторите действия с /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk / usr / lib с целевым каталогом 'info' снова /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib

Готово.Запустите xcode и выберите GCC 4.2 в настройках, где это необходимо.Вы должны удалить устаревший каталог «Разработчик».

Xcode теперь также должен снова принимать обновления через Mac App Store (это еще предстоит проверить).Я также не загружал инструменты командной строки, но, думаю, он тоже выживет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...