编译器差异

时间:2011-03-19 08:26:05

标签: xcode ios compiler-construction xcode4

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

1 个答案:

答案 0 :(得分:2)

这是我的理解

  • GCC 4.2是(大多数)股票标准开源GNU C编译器,可与C,C ++和Objective-C一起使用。它几乎是所有开源中使用的标准编译器,并且经过了实践和测试。但是因为它的旧技术,它只是一个编译器,它没有其他用途的钩子。它非常通用,与CPU和平台无关。

  • LLVM是下一代编译软件。它的语法和语义意识,编译为字节代码,然后编译为本机,它提供钩子,因此IDE和其他工具可以使用它的知识。正是这种意识允许Apple改进自动完成,实现fixit并在Xcode 4中进行构建和分析.LLVM是Apple的未来,也是GCC的未来。 LLVM还产生了更严格的代码,因为它的优化更加智能(不确定)。 LLVM还允许在某些时候进行更动态的语言绑定。

  • LLVM GCC是LLVM与旧GCC后端编译器的中间标记,语法和语义预处理。

我使用它们的方式

  • 我在开发过程中使用LLVM,因为它让我一直警告任何和所有问题。当我第一次在遗留代码上运行它并发现一些问题时真的很有帮助。

  • 我使用GCC为iOS 3.1.3应用程序生成最终可执行文件,并为所有iOS 4.0 / Mac 10.6应用程序生成LLVM。