我在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?
答案 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 ++的问题。