我应该开始使用我的C ++ iPhone项目定位Clang / LLVM吗?

时间:2010-12-12 14:26:08

标签: iphone c++ gcc compiler-construction clang

Apple正在推动LLVM和Clang。谣言说,这是因为Apple希望放弃GCC(由于GPLv3许可证问题),并转而使用Clang。

任何人都知道它何时会发生?

我正在启动一个C ++项目,我打算在iPhone上移植,不知道我是否应该使用C ++ 0x功能(至少是Clang支持的功能),或者我是否应该编写代码与GCC 4.1兼容...

1 个答案:

答案 0 :(得分:13)

  谣言说这是因为Apple希望这样做   放弃GCC(由于GPLv3的问题   许可证),并切换到Clang。

这不是谣言,这是苹果公司声明的立场。 GCC上的GPL许可证阻止Apple在其开发工具中彻底集成编译器/解析器。使用Clang / LLVM,它们没有这样的限制,因此可以使用他们的工具做更多的工作(从Xcode 3.2中集成的Clang静态分析器开始,并与Xcode 4进行更深入的研究)。

除了许可证问题之外,Clang / LLVM构建速度比GCC快得多,并且在Apple的基准测试中(以及我自己的经验)创建了比GCC更好的可执行文件。它还会生成更有用的错误消息。它以模块化的方式构建,与GCC相比也应该更容易维护和扩展。

Apple已经表示,即将推出的Xcode 4中的LLVM编译器2.0支持除导出模板之外的所有C ++功能,并且编译器现在已经自托管了一段时间。如果您不能等待,或者不想尝试Xcode 4开发人员预览,您现在可以通过从main LLVM site获取源代码来查看编译器。

我强烈建议您观看免费提供的WWDC 2010 videos会话300 - “开发人员工具状态”和会话312 - “LLVM编译器中的新功能”,其中列出了他们目前正在努力实现的目标LLVM编译器。

时间方面,只有Apple可以告诉你他们什么时候会做某事,甚至他们也无法准确知道什么时候会有什么东西准备好迎接黄金时段。您可以根据Xcode开发人员预览的改进轨迹进行有根据的猜测,但这就是全部。然而,Clang / LLVM是苹果的方式,所以为什么不计划呢?