本周新Xcode 3.2.1附带的自述文件如下:
我们公司现有的项目是纯C,Objective-C和Objective-C ++,适用于台式机和iphone。有人可以在高层次上总结LLVM,GCC,CLANG,CLANG-LLVM,WordFoo等的差异。人。并解释它们是什么以及我们何时应该使用它们以及用于什么?如果有更详细的解释链接会很高兴,但我真的只是在寻找一个高级概述。
答案 0 :(得分:53)
简而言之:
编译器基本上分为两部分。一个是包含编程语言的解析器和语义分析的前端。前端产生代码的某种中间表示。然后是后端,它接收前端产生的东西,优化它,最终生成汇编代码。
clang(目标 - )C ++支持远未完成,因此在遇到C ++源文件时会调用llvm-gcc。它还包含现在集成到Xcode中的静态分析器。有人说LLVM的后端产生比GCC更好的代码,但你的里程可能会有所不同。 LLVM还支持链接时优化(您可以在Xcode的项目设置中启用)。它们可能会产生更快的代码。
Apple希望将来用GCC取代GCC,因为他们有针对GPLv3许可代码的政策(GCC 4.2是根据GPLv2许可的最后一个版本)。