14

我在 Moutain Lion 上安装了 Xcode 4.5.2,并且安装了最新的“命令行工具”,但是当我尝试使用g++or clang++(和 options -std=c++11 -stdlib=libc++)进行编译时出现错误。与g++

cc1plus: error: unrecognized command line option "-std=c++11"
cc1plus: error: unrecognized command line option "-stdlib=libc++" 

clang++

clang: error: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later)

它在一个 Qt 项目中。

那么如何在我的 Mac 上使用 C++11 呢?

4

3 回答 3

8

如您所见,g++ 不支持这些命令行选项。

听起来您正在使用 Xcode。

对于 clang,您应该查看项目设置,并确保“部署目标”设置为 10.7(或 10.8)

错误消息告诉您的是 libc++ 不适用于 10.6 及之前的版本。

于 2012-12-19T18:26:28.097 回答
3

我在我的 Mac 上安装了 gcc-4.7 以使 C++11 工作。当前版本的 GCC 在支持 C++11 方面相当出色,所以这应该是一个公平的选择。

安装可以由Homebrew完成,并不复杂(至少我能够做到......)

如果您还没有 Homebrew,要安装它:

ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

现在运行

brew doctor

并解决出现的任何问题(hombrew 文档中为此编写了一些内容)。最后,安装当前的 gcc:

brew install gcc

如果一切顺利,您应该可以访问g++-4.7,这允许-std=c++0x

于 2012-12-19T20:10:33.783 回答
0

-std=c++0x如果c++11不起作用,请尝试。在 GCC中对该-std=c++11选项的支持相对较新,您可能没有足够新的版本。

在 libc++ 问题上,我相信 Marshall。

于 2012-12-19T18:31:28.640 回答