能否安全升级至clang 6.0.0以搭配Xcode 9.0使用?
macOS High Sierra下clang 6.0.0的安全安装与Xcode配置攻略
嗨,我来帮你搞定clang 6.0.0的安装位置和Xcode配置问题,结合你提到的实践经验,给你一步步的操作指南:
一、安全安装clang 6.0.0的位置选择
macOS上推荐把自定义编译的clang安装到/usr/local/clang-6.0.0目录,这个位置属于用户自定义工具的标准存放路径,不会和Xcode自带的clang(位于/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/)冲突,也不会污染系统核心目录。
安装步骤:
- 编译clang源码时,通过cmake指定安装前缀:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/clang-6.0.0 [你的其他编译参数] - 编译完成后执行安装(如果权限不够,前面加
sudo):make install - 为了方便终端直接调用,可以给clang和clang++创建软链接到
/usr/local/bin:
之后在终端敲sudo ln -s /usr/local/clang-6.0.0/bin/clang /usr/local/bin/clang-6.0 sudo ln -s /usr/local/clang-6.0.0/bin/clang++ /usr/local/bin/clang++-6.0clang-6.0 --version就能验证是否安装成功啦。
二、配置Xcode使用clang 6.0.0
针对单个项目配置(推荐,避免影响其他项目),按照以下步骤操作:
- 打开你的Xcode项目,点击左侧导航栏最顶部的项目文件,选中对应的Target。
- 切换到
Build Settings标签,在搜索框输入CC,找到CC这个环境变量,将其值设置为:/usr/local/clang-6.0.0/bin/clang - 同样搜索
CXX,设置为:/usr/local/clang-6.0.0/bin/clang++ - 解决你提到的“生成多输出文件时无法指定-o”编译错误:
- 在
Build Settings里搜索Other C Flags和Other C++ Flags,检查是否有重复指定-o的参数,或者和clang 6.0.0不兼容的编译选项,将其移除。 - 也可以检查
Build Phases里的编译脚本,确保没有手动指定输出文件的冲突逻辑。
- 在
验证配置是否生效:
在项目的Build Phases中添加一个Run Script阶段,内容如下:
echo "当前使用的clang版本:" $CC --version
编译项目后,查看控制台输出,确认显示的是clang 6.0.0的版本信息即可。
内容的提问来源于stack exchange,提问作者Altair
相关产品推荐
相关产品推荐

