我有一个用于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 ++编译器版本”中不可见)再下来了。)
答案 0 :(得分:5)
仅供参考 - 我将gcc 4.4集成到最新的Xcode 3.2.4中,包括标志 - 请参阅http://skurganov.blogspot.com/上的博客
答案 1 :(得分:1)
我自己正在研究这个问题。
目前,看起来你必须继承一个内置的编译器参考规范。
添加密钥:
BasedOn = "com.apple.compilers.gcc.4_2";
正确加载插件。但是,由于Apple特定的编译器补丁,存在无效标志的问题。我现在正在研究那部分。
答案 2 :(得分: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
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)",
由于wiki重新格式化,上面的差异不准确,但相关信息就在那里。我注意到的关键部分(以及您上面看到的错误)是标识符更改必须与版本号更改相对应(“。”替换为“_”)。
删除-arch参数适用于编译,但不适用于链接。由于我的gcc不接受此参数,此刻我无法链接。除非我找到另一种方法来解决这个问题,否则我可能会放入一个脚本而不是gcc可执行文件来解决这个问题。