C++ C++;11在Mac上使用叮当声或GCC

C++ C++;11在Mac上使用叮当声或GCC,c++,xcode,c++11,g++,clang,C++,Xcode,C++11,G++,Clang,我在Mountain 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++" 使用c

我在Mountain 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呢?

正如您所发现的,g++不支持这些命令行选项

听起来你在使用Xcode

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


错误消息告诉您的是,libc++在10.6及之前版本中不可用。

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


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

我在Mac上安装了gcc-4.7,以使C++11正常工作。GCC在其当前版本中相当擅长支持C++11,因此这应该是一个公平的选择

安装可以由完成,并且没有那么复杂(至少我能够做到…)

如果尚未安装自制软件,请执行以下操作:

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

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

brew install gcc

如果一切顺利,您应该能够访问
g++-4.7
,它允许
-std=c++0x

XCode中提供的GCC非常旧,没有更新。由于许可问题,苹果现在正在使用Clang和Droping GCC。啊,好吧,这可以解释GCC的问题。我不太清楚OSX是怎么回事,我不是一个个人用户。这是行不通的,我现在的版本是
gcc-4.2.1
@Guillaume-Ouch,-std=c++0x被添加到gcc-4.3 IIRC中。在gcc-4.7中,添加了-std=c++11作为-std=c++0x的同义词。我认为gcc-4.2与C++11几乎没有任何区别。可能是一些tr1库的东西,比如-1,用于在没有任何线索的情况下发布。g++确实支持
-std=c++11
,但Xcode附带的古老版本不支持它。不,我正在使用Qt Creator,我不知道如何更改“部署目标”,我在Mountain Lion 10.8上,所以libc++应该可以找到它,如果我有选择的话,它可以与Clang一起工作:
-mmacosx version min=10.7
,但是现在我的程序在执行时崩溃了,而它在LinuxI上工作时发现了崩溃的原因,与这个问题没有关系,你在QTC造饰者中改变了那个选项?你需要这个是LLVM项目的C++库,它被标志<代码> -STDLIB = LBC++< /COD>谢谢-这就是我所需要的类似问题。