`

LLVM与GCC之间的关系

 
阅读更多

 

 

请问LLVM与GCC之间的关系,网上说LLVM 是编译器的架构,在这个架构上可以搭建多个小编译器(类似C、C++/JAVA/),不知理解的对不对,还请高手补充?

xcode用的编译器应该是LLVM,他和GCC是什么关系,我调试用的时候底层掉的是gdb,费解

LLVM本身并不是编译器,只是一套用于开发编译器、解释器等程序语言相关工具的库,主要聚焦于编译器后端功能,如代码生成、代码优化、JIT等。

所 以说“XCode用的编译器是应该是LLVM”是不对的。XCode用的编译器是Clang。Clang是一个基于LLVM开发的C/C++/Obj-C 编译器,有一套独立的前端,后端直接采用LLVM。还有一个较为早期的相关项目LLVM-GCC,是一个将GCC的前端嫁接到LLVM之上拼接而成的一个 完整的编译器。

Clang自2.8版本起已经可以完整编译Boost了,可以说是Clang成为成熟C++编译器的一个标志。但当时Clang还没有调试器可用,只有一个尚未完成的只支持MacOS平台的LLDB(lldb.llvm.org/)。后来不知道是GDB支持了LLVM还是LLVM支持了GDB,总之Clang 3.0的编译产物已经可以用GDB调试了。

苹果之所以资助LLVM,主要原因在于GCC采用GPL协议而LLVM采用BSD协议。另外GCC官方对苹果提出的需求响应不及时,促使苹果急于寻求GCC的替代品。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics