在XCode 3.2中添加自定义编译器

2w3rbyxf  于 2023-08-07  发布在  其他
关注(0)|答案(3)|浏览(120)

我有一个用于ARM Cortex-m3的gcc 4.3.3工具链,并希望将其集成到XCode中。
有没有办法设置XCode(3.2)来使用这个gcc工具链,而不是内置的GCC 4.2?
到目前为止我尝试过的:我添加了一个修改过的GCC 4.2.xcplugin副本,并更改了名称、版本和可执行路径。它显示在XCode中,但每当我将“C/C编译器版本”设置为自定义编译器时,它就会失败
GCC_VERSION的值“4.3.3”无效
似乎有效的版本号被硬编码在其他地方,因为即使我删除了原始的GCC 4.2.xcplugin,值4.2仍然有效(但在“C/C
编译器版本”下拉列表中不再可见)。

w1jd8yoj

w1jd8yoj1#

FYI -我把gcc 4.4集成到最新的Xcode 3.2.4中,包括标志-请参阅http://skurganov.blogspot.com/博客

wqnecbli

wqnecbli2#

我自己也在努力。
目前,看起来你必须继承一个内置的编译器引用规范。
添加以下项的密钥:

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

字符串
使插件正确加载。然而,由于苹果特定的编译器补丁,存在无效标志的问题。我正在想办法。

r7xajy2e

r7xajy2e3#

我已经得到了编译阶段的工作。要执行此操作,请执行以下操作:

  1. In /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
    1.修改信息列表(可能不是绝对必要的)
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”
    1.修改“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可执行文件来删除这个选项。

相关问题