三类开源编译器(LLVM Clang,GCC,Open64)及(LLVM|GNU)及工具链(编译器+汇编器+链接器+调试器+...)

本文详细介绍了LLVM Clang、GCC和Open64这三种开源编译器的特点和优劣。LLVM Clang以其快速编译、低内存占用和清晰的错误信息脱颖而出,但也需增强对C++和其他语言的支持。GCC作为广泛使用的编译器,支持多种语言。Open64专注于并行计算领域,具有复杂的编译优化。同时,文章探讨了LLVM工具链中的关键组件,如LLVM Static Compiler、LLDB、GCC以及Binutils,并解释了编译、汇编、链接等过程。
摘要由CSDN通过智能技术生成

LLVM Clang编译器


 

什么是clang编译器?
clang是LLVM编译器工具集的一个用于编译C、C++、Objective-C的前端。LLVM项目的目标是提供一个GNU编译器套装(gcc)的替代品,由苹果公司的赞助开发,其源代码授权采用的是类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可。
clang编译器的优势与劣势
1相比于gcc,clang具有如下优点:
1.1编译速度更快:在某些平台上,clang的编译速度要明显快于gcc。
1.2占用内存更小:clang生成的AST所占用的内存通常是gcc的五分之一左右。
1.3模块化的设计:clang采用基于库的模块化设计,更易于IDE的集成及其他用途的重用。
1.4诊断信息可读性强:在编译过程中,clang会创建并保留大量详细的元数据 (metadata),这将更有利于调试和错误报告。
1.5设计更清晰简单,容易理解,易于扩展加强。与代码基础较为古老的gcc相比,学习曲线会显得更为平缓。
2当前 Clang 还处在不断完善过程中,相比于gcc, clang在以下方面还需要加强:
2.1需要支持更多语言:gcc除了支持 C/C++/Objective-C, 还支持Fortran/Pascal/Java/Ada/Go等其他语言。clang 目前基本上只支持C/C++/Objective-C/Objective-C++这四种语言。
2.2需要加强对C++的支持:clang对C++的支持依然落后于gcc,clang 还需要加强对C++ 提供全方位支持。
2.3需要支持更多平台:由于gcc流行的时间比较长,已经被广泛使用,对各种平台的支持也很完备。clang目前支持的平台有 Linux/Windows/Mac OS。

LLVM Clang=compiler+assemble

LLVM llc=LLVM static compiler

llvm-link=linker

llvm-as=assemble

LLDB=Debugger

GCC(GNU CC)=compiler

GNU Binutils-as=assemble

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值