我是一名iOS开发人员,我不知道编译器如何工作,我想问一下LLVM GCC 4.2,Xcode 4默认编译器和GCC 4.2编译器,Xcode 3默认编译器之间有什么区别。

最佳答案

这是我的理解


GCC 4.2是(大多数)标准的开源GNU C编译器,可与C,C ++和Objective-C一起使用。它几乎是所有开放源代码中使用的标准编译器,并且经过了可靠的测试。但是因为它的旧技术,只是一个编译器,所以没有其他用途的钩子。它非常通用,与CPU和平台无关。
LLVM是下一代编译软件。它具有语法和语义意识,可以编译为字节代码,然后编译为本地代码,并且提供了挂钩,以便IDE和其他工具可以使用其知识。正是这种认识使Apple能够改善自动完成功能,实施Fixit并在Xcode 4中进行构建和分析。LLVM是Apple的未来,也是GCC的未来。 LLVM还可以生成更严格的代码,因为其优化更为智能(对此不确定)。 LLVM在某些时候还允许更多的动态语言绑定。
LLVM GCC是使用旧版GCC后端编译器进行的LLVM的中间标记,语法和语义预处理。


我使用它们的方式


我在开发过程中使用LLVM,因为它使我警惕所有问题。当我第一次在遗留代码上运行它并发现一些问题时,这确实有帮助。
我使用GCC为iOS 3.1.3应用程序生成最终的可执行文件,并为所有iOS 4.0 / Mac 10.6应用程序生成LLVM。

10-07 19:15
查看更多