2011-09-25 152 views
5

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

如何继续在Snow Leopard上使用C++ 11?有没有一种方法可以做到这一点,并保持Xcode作为一个IDE?

+0

[我可以在XCode 4或OSX Lion中使用C++ 11的最新功能吗?](http://stackoverflow.com/q/7482026/636019) – ildjarn

+0

ildjarn,绝对不可以。这个问题涉及XCode版本<4,因为Snow Leopard用户禁止使用XCode 4.您链接的问题是关于XCode 4/Lion。 – nuit9

+1

尽管Xcode 3是Snow Leopard的默认版本,但Apple确实通过Mac App Store为SL提供了Xcode 4的早期版本(并且版本可通过Apple Developer Connection获得)。 –

回答

6

更新feb.25 2012:现在有很多功能可供您使用最新的clang。 也许如果仅使用语言功能,则可以将目标设为10.6。如果你需要库功能,你将需要10.7。


给出的Xcode工具集本(sept.24.2011)状态

,这是最简单的(IMO)选择其他IDE或操作系统,如果你需要C++ 11的支持。

gcc xcode使用的分支不会支持这些功能。铿锵声远远落后于C++ 11的特性(因为它的C++实现还很新,其他编译器还有几年)。因此,xcode附带的编译器目前不支持用于C++ 11开发的足够功能,而与您使用的osx版本无关。

您可以安装更新版本的gcc并相当容易地使用另一个ide。从技术上讲,您还可以为xcode 3(不正式支持)调用另一个编译器(例如gcc的更新版本)创建一个插件。该路线已在xc4(afaik)中关闭。 更新显然,它仍然可用于Xc4;请参阅下面的idljarn评论。

对于很多项目,只需使用您的Mac启动到Linux或Windows(或使用虚拟化)更容易。

您的最终选择是英特尔的编译器,它可以在xcode中使用并提供相当数量的C++ 11支持 - 在购买之前先用xcode试用它,看看它是否适合您的需求,与xcode,并支持您团队使用的C++ 11功能。

最后,我不认为他们这样做是为了升级钱。他们确实没有很好地维护多个版本的xcode - 他们只是希望你保持最新最好的版本,除非你需要向后兼容;在这种情况下,您只需停止升级。他们在海湾合作委员会执照变更后投资并协助发展铿锵。所以是啊... osx一直都很支持wrt C++ 11的支持,因为他们决定转换到另一个(非常年轻的)编译器。如果你等待xcode支持C++ 11,那么你将不得不等待clang来支持它,这可能会持续一段时间。

+1

xcode 3的插件也适用于xcode 4(尽管不受支持)。 – ildjarn

+0

@ildjarn正是我所需要的...在晚上结束之前的另一个项目(但严重,谢谢!=)) – justin

+0

@ildjarn证实。 gcc4.5(通过'port')作为一个插件与xc4。 – justin

3

我刚才看到了这个,我想在此更新你。目前与XCode一起发货的LLVM版本为3(Source)。这个当前版本支持C++ 11非常好。这里是一个链接,支持什么:

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

可以与目前的GCC支持这里的比较:

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

正如你所看到的,锵目前也不甘落后,如果完全可以支持新标准的功能。我唯一看到的是缺乏对并发功能的支持,但是对于大多数C++ 11编译器来说,由于支持它的本质,情况就是这样。所以我希望这个答案不是太晚,而且你是没有被吓倒。去获取Xcode的最新版本然后开火(如果你还没有这样做的话))!

相关问题