Clang 是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端
介绍
- LLVM (Low Level Virtual Machine)是一个开源的编译器架构,- Clang是- LLVM的一个编译器前端- 
- 步骤包括:编译期优化、链接优化、在线编译优化、代码生成等
- LLVM 有许多的子项目,比如 Clang, LLDB, MLIR 等
 
- Clang采用了 LLVM 作为其后端,由LLVM2.6开始,一起发布新版本- 
- 目标是提供一个GNU编译器套装的替代品,支持了GNU编译器大多数的编译设置以及非官方语言的扩展
- Clang对源程序进行预处理、词法分析、语法分析,并将分析结果转换为- Abstract Syntax Tree(抽象语法树),最后使用- LLVM作为编译器后端代码的生成器
 
- 相比 GUN 的优点:模块化,代码简单易懂,占用内存小、容易扩展和重用等
- 其他
- GCC(GNU Compiler Collection, GNU 编译器套装)是一套由- GNU开发的编程语言编译器- 
- GCC 原名为 GNU C语言编译器,开始只能处理 C语言,后来支持处理C++、Fortran、Pascal、Objective-C、Java以及Ada等他语言
 
 
开发环境
VSCode + C/C++ 插件开发比较慢,可以使用 vscode + clangd/CMake/CMake Tools/CodeLLDB 插件替代
# ubuntu 安装
sudo apt install clang clangd lldb cmake
使用参考