如何在Mac上更新clang版本以编译C++11项目?

3
我正在尝试构建一个最初为archlinux编写的项目。在archlinux上,构建过程可以正常进行,但在我的mac上构建时出现了大量错误。该项目基本上是用C++11编写的,因此它非常不稳定。我认为这与编译器有关,因为mac上的clang版本是4.2(实际上当我输入clang --version时,它显示'Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)'),而linux为3.3。因此,我想要一个不同版本的clang,或许是3.3。在尝试构建项目时,我应该如何指定编译器的版本?

没有 clang 4.5 版本。你是在说 XCode 吗?或者,也许你正在 Mac OS X 中使用 gcc 4.5。 - m0nhawk
对不起,clang 4.2。我已经修改了文章,谢谢! - Nothing More
1
Apple Clang的版本与XCode版本相关联,与实际Clang版本不同。如果您执行clang --version命令,应该会得到类似于“基于Clang 3.X的Apple Clang 4.2”等内容。 - Xeo
实际上,当我执行clang --version时,我得到的是“Apple LLVM版本4.2(clang-425.0.28)(基于LLVM 3.2svn)”。因此,我猜我正在尝试更新clang而不是降级它,以支持该项目的一些新的c++11特性。 - Nothing More
2个回答

2

有人可能会认为这属于apple.stackexchange.com,但我不确定C++11标签是否会引起那里的很多关注:)

Xcode 5.0现已在App Store上提供。安装它,转到首选项->下载,并安装命令行工具。然而...

首先,您需要转到“首选项”->“帐户”并添加您的Apple ID。由于某种原因,命令行工具下载需要帐户登录。我不知道这背后的理由是什么。

> clang -v
Apple LLVM version 5.0 (clang-500.2.75) (based on LLVM 3.3svn)

1
如果您愿意从命令行构建,例如使用make(考虑到该项目来自Linux,这听起来很可能),那么请安装Macports并安装您想要的任何版本的clang
$sudo port install clang-3.1
$sudo clang_select

请注意,如果您愿意使用 xcrun clang 而不是普通的 clang 来调用 Xcode 版本,则这个版本的 clang 不应该干扰 Xcode 命令行包。

谢谢!但是我应该如何切换版本呢?我尝试了sudo port install clang_select,但它没有起作用。 - Nothing More

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接