如何让Xcode使用替代版本的clang?

j b*_*j b 8 compiler-construction macos xcode clang

如何设置Xcode以使用llvm.org分发的clang而不是Apple提供的clang ?

如果我下载clang二进制文件并安装到/usr/local然后将我的编译器设置为Other ... - > /usr/local/bin/clang在Xcode中,那么我得到表单的错误:

为架构'x86_64'选择了不支持的编译器'/ usr/local/bin/clang'

无法为sourcecode.cc类型的文件...确定具体的GCC编译器

更新:我已经找到了一种通过符号链接/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usrclang+llvm-3.4-x86_64-apple-darwin10.9根目录来完成这项工作的方法,但是如果有一种方法可以为Xcode设置替代编译器而不修改Xcode目录树,那就更好了.

hag*_*agi 13

最简单的选项(也是最容易反转的)是添加CC构建标志.转到项目或目标的构建设置,然后从菜单中选择编辑器 - > 添加构建设置 - > 添加用户定义的设置.

添加自定义构建标志

为该标志命名CC,并将值设置为Clang二进制文件的路径.

设置<code> CC </ code>标志

您可以选择是否要将此编译器用于所有构建,或者仅调试构建(例如,当您使用Clang的实验和/或自修改版本时,这是有意义的).

请注意,对于自动完成,符号搜索等功能,Xcode不使用Clang二进制文件,而是使用随Xcode分发的其他LLVM库.我已经描述了如何替换另一篇文章(这或多或少与你采取的方法相同).通过仅更改Clang版本,编译后可能会在编辑时获得与编辑器中显示的警告不同的警告.


MrM*_*ter 7

这是一个老问题,但由于我想安装更新的clang/libc ++以与Xcode 9+一起使用,这是我的解决方案,希望它对某人有用.

  1. 如果从源代码构建,请确保传递 -DLLVM_CREATE_XCODE_TOOLCHAIN=ON给cmake,然后运行make install-xcode-toolchain.如果使用自制软件安装,请使用brew install --with-toolchain llvm
  2. 将toolchain文件夹从其安装的位置(可能是/ usr/local/Toolchains)复制到/ Library/Developer/Toolchains
  3. 重新启动Xcode,您将在Xcode菜单中看到一个Toolchains选项.

我遇到的一个特殊问题是clang抱怨"不能使用多个输出文件的-o选项".这是因为在撰写本文时,Apple的铿锵声有一个新的选项,在主干中缺失.要解决此问题,请Index-While-Building在项目设置中禁用该功能.