前言
开始安装前先了解以下概念:
gcc, llvm, clang区别与联系:详解三大编译器:gcc、llvm 和 clang
clangd是什么?What is clangd? 与 LLVM每日谈之二十五 Clangd和LSP
简而言之clang + llvm == gcc,它们是C++代码编译器。而clangd是一个C++静态语法分析工具,提供代码提示,自动补全,代码跳转等功能。
环境搭建
所需插件
配置clangd环境
VSCode编写C++代码若想用clangd实现代码提示,自动补全,代码跳转等功能的完整路径为:VSCode编辑器 + VSCode clang插件 + clangd language server。工作原理:“VSCode clang插件”工作在VSCode编辑器端,它把语法分析请求发送给“clangd language server”,然后“clangd language server”把分析结果反馈给VSCode编辑器,这样VSCode编辑器就能实现代码提示,自动补全,代码跳转等功能。
1、卸载VSCode的C/C++插件。必须步骤,它和VSCode的clangd插件冲突。
2、安装VSCode clangd插件,安装完此插件,首次打开后,会自动安装“clangd language server”。但是“clangd language server”下载比较慢,可以自己去github上下载release包,手动安装。
手动安装“clangd language server”:
1) 打开clangd language server github网站。
-
下载release包:
-
解压到WSL的
/usr/local
目录中:
unzip clangd-linux-14.0.3.zip -d /usr/local/
- 把“clangd language server”添加到WSL的
PATH
环境变量中,必须操作,否则无法识别。vim ~/.bashrc
,在文件末尾添加如下内容:
# clangd
export PATH="/usr/local/clangd_14.0.3/bin:$PATH"
3、在VSCode中编写C++代码,并生成compile_commands.json
文件。关于生成compile_commands.json
的方法参看官方文档:Getting started。
4、打开任意一个cpp文件,VSCode clangd插件就会根据compile_commands.json
文件的描述建立索引,建立好的索引放在当前工程的.cache
目录下。若想重新建立索引,则删除.cache
目录,然后打开任意一个cpp文件,重新触发索引建立过程。
5、若是VSCode + mingw环境搭建,则需要告诉clangd插件编译器的位置,否则会提示找不到头文件。
打开clangd插件设置,添加如下配置:
也可直接在settings.json
中添加如下配置:
"clangd.arguments": [
"--query-driver=C:\\mingw64\\bin\\*.exe"
]
安装调试插件
安装"CodeLLDB"插件,"CMake"插件和"CMake Tools"插件。
调试代码
1、用"CMake: Build"指令编译。
2、打断点,在VSCode菜单栏依次点击"运行" > "启动调试/以非调试模式运行"启动运行与调试。首次会提示错误,点击确定后会自动帮你创建launch.json
文件(前提是正确安装了"CodeLLDB"插件),等launch.json
文件创建完毕后,再次启动就能运行与调试代码了。
若没有自动创建launch.json
文件,则自己手动创建,并放于工程的.vscode
目录下。launch.json
文件内容:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/<executable file>",
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
参数说明:
- program:指定"CMake: Build"生成的二进制的路径,一般在
Build
目录下; - args:程序启动参数。