Добавьте пользовательский компилятор в XCode 3.2 - PullRequest
7 голосов
/ 21 декабря 2009

У меня есть рабочий набор инструментов gcc 4.3.3 для ARM Cortex-m3, и я хотел бы интегрировать его в XCode.

Есть ли способ настроить XCode (3.2) на использование этого набора инструментов gcc вместо встроенного GCC 4.2?

Что я пробовал до сих пор: Я добавил измененную копию GCC 4.2.xcplugin и изменил имя, версию и путь к исполняемому файлу. Он отображается в XCode, но всякий раз, когда я устанавливаю «версию компилятора C / C ++» на собственный компилятор, он завершается с

Неверное значение '4.3.3' для GCC_VERSION

Кажется, что действительные номера версий жестко заданы где-то еще, потому что даже когда я удаляю исходный GCC 4.2.xcplugin, значение 4.2 остается действительным (но больше не отображается в раскрывающемся списке «Версия компилятора C / C ++») .

Ответы [ 3 ]

5 голосов
/ 08 октября 2010

К вашему сведению - я включил gcc 4.4 в последнюю версию Xcode 3.2.4, включая флаги - см. Блог на http://skurganov.blogspot.com/

1 голос
/ 20 мая 2010

Я получил фазу компиляции для работы. Для этого:

  1. In / Разработчик / Библиотека / Xcode / Плагины
  2. cp "GCC 4.2.xcplugin" "GCC Arm 4.4.1.xcplugin"
  3. cd "GCC Arm 4.4.1.xcplugin" / Содержание
  4. Изменить Info.plist (не обязательно)
8c8
-   com.apple.xcode.compilers.gcc.arm-4_4_1
---
+   com.apple.xcode.compilers.gcc.4_2
12c12
-   GCC Arm 4.4.1 Compiler Xcode Plug-in
---
+   GCC 4.2 Compiler Xcode Plug-in
  1. Ресурсы CD
  2. mv "GCC 4.2.xcspec" "GCC Arm 4.4.1.xcspec"
  3. Изменить "GCC Arm 4.4.1.xcspec"
10c10
-     Identifier = "com.apple.compilers.gcc.arm-4_4_1";
---
+     Identifier = "com.apple.compilers.gcc.4_2";
13,16c13,16
-     Name = "GCC Arm 4.4.1";
-     Description = "GNU Arm C/C++ Compiler 4.4.1";
-     Version = "arm-4.4.1";
---
+     Name = "GCC 4.2";
+     Description = "GNU C/C++ Compiler 4.2";
+     Version = "4.2";
39c39
-         "com.apple.compilers.gcc.headers.arm_4_4_1",
---
+         "com.apple.compilers.gcc.headers.4_2",
42c42
-     ExecPath = "$(PLATFORM_DEVELOPER_BIN_DIR)/gcc-arm.4.4.1";
---
+     ExecPath = "$(PLATFORM_DEVELOPER_BIN_DIR)/gcc-4.2";
48,49c48,49
-     SupportsZeroLink = No;
-     "SupportsPredictiveCompilation" = No;
---
+     SupportsZeroLink = Yes;
+     "SupportsPredictiveCompilation" = Yes;
52,53c52,53
-     "SupportsMacOSXDeploymentTarget" = No;
-     "SupportsMacOSXMinVersionFlag" = No;
---
+     "SupportsMacOSXDeploymentTarget" = Yes;
+     "SupportsMacOSXMinVersionFlag" = Yes;
88a89,90
-                     "-arch",
-                     "$(value)",
  1. Ссылка компилятора в /Developer/usr/bin/gcc-arm.4.4.1

Из-за переформатирования вики приведенные выше различия не являются точными, но соответствующая информация есть. Важная часть, которую я отметил (и что вы, похоже, ошиблись выше), заключается в том, что изменение Идентификатора должно соответствовать изменению номера версии (с заменой «.» На «_»).

Избавление от параметра -arch работает для компиляции, но не для компоновки. Поскольку мой gcc не примет этот параметр, я не могу связать в данный момент. Если я не найду другого способа исправить это, я, вероятно, добавлю скрипт вместо исполняемого файла gcc, чтобы вытащить эту опцию.

1 голос
/ 17 апреля 2010

Я работаю над этим сам.

В настоящее время похоже, что вы должны наследовать встроенную спецификацию компилятора.

Добавление ключа:

BasedOn = "com.apple.compilers.gcc.4_2";

Правильно загружает плагин. Тем не менее, существует проблема неправильных флагов из-за специфических патчей для компилятора Apple. Я сейчас работаю над этой частью.

...