繁体   English   中英

在Mac OS X Snow Leopard上使用Xcode的C ++ 11

[英]C++11 with Xcode on Mac OS X Snow Leopard

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

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

更新2012年2月25日:现在有很多功能可供您使用最新的铿锵声。 如果您仅使用语言功能, 也许您可以定位10.6。 如果您需要库功能,则需要10.7。


鉴于目前(2011年9月24日)Xcode工具集的状态,如果你需要c ++ 11支持,最简单的选择(IMO)选择另一个ide或os。

gcc xcode使用的fork将永远不会支持这些功能。 clang远远落后于crt 11的特性(因为它的c ++实现仍然是非常新的,其他编译器还有一些额外的年份)。 因此,无论您使用哪种版本的osx,编译器xcode目前都不支持c ++ 11开发的足够功能。

你可以安装更新版本的gcc并相当容易地使用另一个ide。

从技术上讲,你也可以为xcode 3(非官方支持)制作一个插件,它可以调用另一个编译器(例如更新版的gcc)。 该路线已在xc4(afaik)关闭。 显然更新 ,它仍然可以在Xc4中使用; 请参阅下面的idljarn评论。

对于许多项目来说,使用你的mac引导进入linux或windows(或使用虚拟化)更容易。

你的最终选项是intel的编译器,可以在xcode中使用并提供相当数量的c ++ 11支持 - 在购买之前尝试使用xcode以查看它是否符合您的需求,与xcode配合使用,并支持c ++ 11是您团队使用的功能。

最后,我不认为他们为你的升级钱做这件事。 他们真的不能很好地维护多个版本的xcode - 除非你需要向后兼容,否则他们只希望你保持最新和最好的版本; 你只是在这种情况下停止升级。 在gcc许可证发生变更后,他们投资并协助开发clang。 所以是啊... osx一直远远落后于crt 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并开火(如果你还没有这样做的话);)!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM