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