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
使用参考