Как использовать gcc 4.2 с Xcode 4.2 - PullRequest
3 голосов
/ 16 октября 2011

Мне нужно использовать gcc 4.2 с Xcode 4.2 для более старого кода.Как я могу получить это, чтобы показать.Xcode4.2, кажется, отказался от поддержки.

Спасибо

Ответы [ 4 ]

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

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

В этом процессе нет файлов или каталогов , удаленных или , удаленных , поэтому их легко отменить, если в будущем вам потребуется скомпилировать с 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 и т. Д.) Обязательно заключите путь в кавычки "/ длинный путь / с пробелами / в нем / file.xcspec " или экранирование пробелов / some / long \ path / с \ пробелами / в \ it / file.xcspec

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

1 голос
/ 11 января 2012

Таким образом, полный процесс получения gcc 4.2 для работы с новой установкой Xcode 4.2 (не iOS):

  1. Установка gcc 4.2

    sudo port install apple-gcc42
    
  2. Настройте Xcode, чтобы gcc 4.2 отображался как опция компилятора, отредактировав файл Gcode 4.2.xcspec Xcode 4.2, чтобы gcc 4.2 отображался в списке параметров компилятора:

    1. Откройте файл xcspec для редактирования:

      sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2.xcplugin/Contents/Resources/GCC 4.2.xcspec"
      
    2. Измените строки 41 и 42 следующим образом:

      ShowInCompilerSelectionPopup = NO;
      IsNoLongerSupported = YES;
      

      На Это:

      ShowInCompilerSelectionPopup = YES;
      IsNoLongerSupported = NO;
      
  3. Свяжите двоичный файл gcc 4.2 с местом, которое ожидает XCode:

    sudo ln -s /opt/local/bin/gcc-apple-4.2 /Developer/usr/bin/gcc-4.2
    sudo ln -s /opt/local/bin/g++-apple-4.2 /Developer/usr/bin/g++-4.2
    

Я объяснил проблему и обходной путьв этом блоге , в котором собрана информация, которую я нашел.Не стесняйтесь комментировать.

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

Спасибо, chown за то, что поделился этим! Я боролся около полдня, но в итоге оказалось, что для достижения цели мне понадобилось всего несколько шагов:

Для всех, кому нужен GCC-4.2 для компиляции приложений (без iOS) это довольно просто: Вам не нужно ничего устанавливать, просто выполните следующие несколько шагов:

  1. РЕДАКТИРОВАТЬ: Если у вас еще не установлен GCC 4.2 (из более ранней версии XCode или ручной установки), следуйте инструкциям Шона Денигриса в комментариях!

  2. Выполните шаг 3 из исходного описания:
    Отредактируйте файл Xcode 4.2 GCC 4.2.xcspec, чтобы gcc 4.2 отображался в списке параметров компилятора.

  3. Заставить Xcode снова найти компилятор:

    ln -s /usr/bin/gcc-4.2 /Developer/usr/bin/gcc-4.2

  4. Также сделайте доступным компоновщик:

    ln -s /usr/bin/g++-4.2 /Developer/usr/bin/g++-4.2

Это прекрасно работает для меня! Но, как я уже сказал, это только для не iOS продуктов!

0 голосов
/ 17 февраля 2012

Простое и удобное решение https://github.com/kennethreitz/osx-gcc-installer/ Автоматизирует списки объявлений в stackoverflow

...