似乎存在各种问题,例如this one,而没有任何明确的解决方案适用于Xcode 7(甚至其他版本的Xcode)。
我有一个GCC版本,我希望Xcode在编译时使用。它不是标准的GCC,而是为不同的平台定制的。我可以在Eclipse中指定和使用这个编译器,但宁可使用Xcode。 “构建选项”仅列出LLVM而不列出任何其他内容。当我尝试添加"其他"在那部分中,我得到的只是这个空的弹出窗口:
这个盒子里有什么?我认为Xcode简单地使用我在系统上的特定路径上可用的GCC应该没什么大不了的,但这看起来相当复杂。
答案 0 :(得分:2)
更新:显然有一个supported mechanism用于在Xcode中安装外部提供的工具链,我不知道。例如,可以从swift.org下载软件包,将软件包安装到/ Library / Developer / Toolchains或〜/ Library / Developer / Toolchains。一旦安装了其中一个,Xcode就有一个GUI选项来切换活动的工具链。
Swift来源有一个recent change,其中包含一个用于构建自己的自定义工具链的脚本。
如果您查看该构建设置的快速帮助(查看>实用程序>显示快速帮助检查器)或配置构建设置视图以显示设置名称而不是标题(编辑器>显示设置名称),您可以&#39 ; ll看到该设置为GCC_VERSION
。
如果您在构建设置参考中查找,那么find:
GCC_VERSION
描述:
数字标识符。标识要用于编译的GCC版本 目标的源文件。当目标的“系统C规则”设置为 GCC系统版本(而不是特定的版本号),这个版本 设置在“运行脚本”构建阶段中不可用。
值:
- 2.95.2
- 3.1
- 3.3
- 4.0
默认值:
GCC系统版本。
指定于:
- 项目信息>规则> “系统C规则。”
- 目标信息>规则> “系统C规则。”
影响:
GCC_VERSION_IDENTIFIER。
实际上有点过时了。它说它是通过摆弄一个名为" System C规则"的构建规则(而不是设置)来指定的。您曾经在那里更改过版本,但现在有了直接构建设置。
无论如何,这可能并不能帮助你做你想做的事。我怀疑你可以在那里做任何有用的东西,更不用说使用第三方编译器。
但是,解释确实有提示。它提到了System C构建规则。您可以在目标配置屏幕的“构建规则”选项卡上修改构建规则。您可以找到System C规则并按下按钮将其复制到目标,这将允许您指定自定义脚本来处理C文件(包括Objective-C和C ++)。
实现这样的脚本并非易事。脚本的输入,预期输出和所需行为没有很好地记录。可以使用各种环境变量来使用这样的脚本。一些是构建设置。您需要将相关设置转换为编译器选项。例如,将CLANG_WARN_BOOL_CONVERSION
设置转换为相应的-Wbool-conversion
选项。
其他一些环境变量指示您应该对哪个文件进行操作,例如INPUT_FILE_PATH
,INPUT_FILE_NAME
等。
您需要告诉Xcode您的规则输出了哪些文件。这些可以基于输入环境变量/设置,例如$(OBJECT_FILE_DIR)-$(CURRENT_VARIANT)/$(CURRENT_ARCH)/$(INPUT_FILE_BASE).o
。
一般来说,这不是Xcode变得容易的事情。
答案 1 :(得分:1)
有人编写了一个允许你使用Xcode中的gcc的插件。
http://hamelot.io/programming/add-gcc-compiler-to-xcode-6/
如果您有自定义gcc,那么您需要更改路径等,但该插件应该有效。