使用Clang或GCC在Mac上使用C ++ 11

时间:2012-12-19 17:51:48

标签: c++ xcode c++11 g++ clang

我在Moutain Lion上有Xcode 4.5.2,我安装了最新的“命令行工具”,但是当我尝试使用g++clang++(和-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?

3 个答案:

答案 0 :(得分:8)

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

听起来你正在使用Xcode。

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

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

答案 1 :(得分: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

答案 2 :(得分:0)

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

我信任马歇尔关于libc ++的问题。