苹果正在大力推动 LLVM 和 Clang。谣言说这是因为 Apple 想要放弃 GCC(由于 GPLv3 许可证的问题),转而使用 Clang。
有人知道它什么时候会发生吗?
我正在开始一个我计划在 iPhone 上移植的 C++ 项目,但不知道我是否应该使用 C++0x 功能(至少是 Clang 支持的功能),或者我是否应该编写与 GCC 兼容的代码4.1...
苹果正在大力推动 LLVM 和 Clang。谣言说这是因为 Apple 想要放弃 GCC(由于 GPLv3 许可证的问题),转而使用 Clang。
有人知道它什么时候会发生吗?
我正在开始一个我计划在 iPhone 上移植的 C++ 项目,但不知道我是否应该使用 C++0x 功能(至少是 Clang 支持的功能),或者我是否应该编写与 GCC 兼容的代码4.1...
谣言说这是因为 Apple 想要放弃 GCC(由于 GPLv3 许可证的问题),转而使用 Clang。
这不是谣言,这是苹果的既定立场。GCC 上的 GPL 许可证阻止 Apple 将编译器/解析器彻底集成到他们的开发工具中。使用 Clang / LLVM,他们没有这样的限制,因此能够使用他们的工具做更多的事情(从 Xcode 3.2 中集成的 Clang 静态分析器开始,到 Xcode 4 更进一步)。
除了许可证问题之外,Clang / LLVM 的构建速度比 GCC 快得多,并且在 Apple 的基准测试(以及我自己的经验)中创建的可执行文件比 GCC 性能更好。它还会生成更多有用的错误消息。它以模块化方式构建,这也应该比 GCC 更容易维护和扩展。
Apple 已经表示,除了导出模板之外的所有 C++ 功能都在即将推出的 Xcode 4 中的 LLVM 编译器 2.0 中得到支持,并且该编译器已经自托管一段时间了。如果您迫不及待,或者不想尝试 Xcode 4 开发者预览版,您现在可以通过从LLVM 主站点获取源代码来查看编译器。
我强烈建议观看第 300 场免费提供的WWDC 2010 视频- “开发人员工具联盟状态”和第 312 场 - “LLVM 编译器中的新功能”,他们在其中展示了他们目前正在使用 LLVM 编译器实现的目标。
在时间方面,只有 Apple 可以告诉你他们什么时候会做某事,甚至他们也无法确切知道什么时候可以为黄金时段做好准备。您可以根据 Xcode 开发者预览版的改进轨迹做出有根据的猜测,但仅此而已。然而,Clang / LLVM 是 Apple 的发展方向,那么为什么不为此做好计划呢?