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的替代品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值