c++ 11与Xcode在Mac OS X雪豹

C++11 with Xcode on Mac OS X Snow Leopard

本文关键字:OS 雪豹 Mac Xcode c++      更新时间:2023-10-16

我有一个项目,有时在Windows/Visual Studio 2010上开发,并使用一些c++ 11功能,我需要能够在Mac OS x上开发/构建。当我试图用Xcode构建项目时,我得到了很多关于新的c++ 11功能的错误,并检查了gcc版本,发现它很旧(4.2)。看来苹果试图通过拒绝Xcode 4+在任何其他版本的Mac OS上下载来迫使开发者支付不必要的升级到Lion,因此我只剩下Xcode 3.x。

如何在雪豹上继续使用c++ 11 ?有没有一种方法可以做到这一点,让Xcode作为一个IDE?

2012年2月25日更新:现在有很多功能可供您使用最新的clang。如果你只使用语言特性,也许你可以瞄准10.6。如果你需要库的特性,你需要使用10.7。


考虑到目前(2011年9月24日)Xcode工具集的状态,如果你需要c++11支持,选择其他ide或os是最简单的(IMO)。

xcode使用的GCC分支永远不会支持这些特性。Clang远远落后于WRT c++11的特性(因为它的c++实现仍然很新,而其他编译器已经有几年的时间了)。因此,无论你使用哪个版本的osx, xcode附带的编译器目前都不支持c++11开发的足够功能。

你可以安装一个新版本的GCC并使用另一个ide。

从技术上讲,你也可以为xcode 3做一个插件(官方不支持),调用另一个编译器(例如最近发布的gcc)。那条路线已于2004年关闭。更新显然,它在Xc4中仍然可用;请看下面idljarn的评论

对于许多项目,使用MAC引导到Linux或Windows(或使用虚拟化)更容易。

你的最后一个选择是英特尔的编译器,它可以在xcode中使用,并提供了相当数量的c++11支持——在你购买之前尝试一下xcode,看看它是否符合你的需求,与xcode配合良好,并支持你的团队使用的c++11功能。

最后,我不认为他们这样做是为了你的升级钱。他们并没有很好地为多个版本维护xcode——他们只是希望你保持最新最好的版本,除非你需要向后兼容;在这种情况下,你只需停止升级。在gcc许可证变更后,他们投资并协助了clang的开发。是的……Osx一直远远落后于WRT c++11的支持,因为他们决定切换到另一个(非常年轻的)编译器。如果你等待xcode支持c++11,你将不得不等待clang支持它,这可能是相当长的一段时间。

我刚刚看到这个,我想更新一下。目前随XCode一起发布的LLVM是版本3(源代码)。当前版本非常好地支持c++ 11。以下是支持的链接:

http://clang.llvm.org/cxx_status.html

你可以将其与当前GCC的支持进行比较:

http://gcc.gnu.org/projects/cxx0x.html

正如你所看到的,Clang目前在支持新标准的特性方面并没有落后太多,如果有的话。我唯一担心的是缺乏对并发特性的支持,但这是大多数c++ 11编译器的情况,因为支持它的本质。所以我希望这个答案不会太迟,也不会吓到你们。去获取最新版本的Xcode并开始使用吧(如果你还没有这么做;))!