Добавьте пользовательский компилятор к XCode 3.2

Я имею работу gcc 4.3.3 набора инструментальных средств для Коры-m3 ARM и хотел бы интегрировать его в XCode.

Существует ли способ настроить XCode (3.2) для использования этого gcc набора инструментальных средств вместо встроенного GCC 4.2?

Что я попробовал до сих пор: я добавил измененную копию GCC 4.2.xcplugin и изменил имя, версию и исполняемый путь. Это обнаруживается в XCode, но каждый раз, когда я установил "Версию Компилятора C/C++", к пользовательскому компилятору это перестало работать с

Недопустимое значение '4.3.3' для GCC_VERSION

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

7
задан rluba 21 December 2009 в 17:35
поделиться

2 ответа

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

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

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

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

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

1
ответ дан 7 December 2019 в 07:46
поделиться

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

  1. В /Developer/Library/Xcode/Plug-ins
  2. cp "GCC 4.2.xcplugin" "GCC Arm 4.4.1.xcplugin"
  3. cd "GCC Arm 4.4.1.xcplugin"/Contents
  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 Resources
  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
ответ дан 7 December 2019 в 07:46
поделиться
Другие вопросы по тегам:

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