笔者发现自己是真的能够折腾…在Windows下选择了gcc/g++的C编译器,最近在搞Linux的时候又选择了clang/clang++。但是Windows下用GNU的软件都比较方便,只要下载一个MinGW installer就可以选择安装各种GNU的单品了,但是在Linux下配置clang/clang++就显得有些麻烦了。
一. clang的优点
- 众所周知,报错比gcc/g++友好
- 更强大的LINT(静态语法检查)功能。
- 拥有强大的工具链,最有名的就是sanitizer, sanitizer又可分为MemorySanitizer,AddressSanitizer, ThreadSanitizer。其中用MemorySanitizer可以进行Memory leak的检查。
- JIT技术:Just In Time技术
二. clang和llvm的基础知识
- 什么是编译器的前端?什么又是后端? 一个编译器系统的前后端,其实就是以中间代码的生成为界。在GCC中,中间代码就是汇编语言——也就是说,在之前的工具都属于编译器的前端,之后的工具都属于编译器的后端。
- clang是啥?llvm又是啥? 我们平时所说的clang,只不过是一个编译器的前端,它的后端就是llvm。
- 一些比较有用的命令行参数:-std=c++17(指定c++标准), -stdlib=(指定头文件), -lxxx(指定标准库)
三. clang和vscode的下载
clang及llvm的下载:https://www.cnblogs.com/focus-lei/p/9640574.html
vscode的下载:vscode官网(自己百度)
(注: vscode需要各种配置文件,但是官网上的都是针对单个文件的。一个比较推荐的方法就是——先上官网查看各种配置文件如何生成,再到blogs中查找可行的配置)
我个人的launch.json配置(debug还是选择了gdb,因为找不到lldb,逃)
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch",
"cwd": "${workspaceFolder}",