首页 > 编程语言 >VSCode + WSL + clangd +CMake + CMake Tools搭建C++开发环境

VSCode + WSL + clangd +CMake + CMake Tools搭建C++开发环境

时间:2022-09-30 20:36:39浏览次数:90  
标签:插件 clangd CMake language VSCode server

前言

开始安装前先了解以下概念:
gcc, llvm, clang区别与联系:详解三大编译器:gcc、llvm 和 clang
clangd是什么?What is clangd?LLVM每日谈之二十五 Clangd和LSP
简而言之clang + llvm == gcc,它们是C++代码编译器。而clangd是一个C++静态语法分析工具,提供代码提示,自动补全,代码跳转等功能。

环境搭建

所需插件

  1. "clangd"插件;
  2. "CodeLLDB"插件;
  3. "CMake"插件;
  4. "CMake Tools"插件。

配置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网站。

  1. 下载release包:
    image.png
    image.png

  2. 解压到WSL的/usr/local目录中:

 unzip clangd-linux-14.0.3.zip -d /usr/local/
  1. 把“clangd language server”添加到WSL的PATH环境变量中,必须操作,否则无法识别。
    vim ~/.bashrc,在文件末尾添加如下内容:
# clangd
export PATH="/usr/local/clangd_14.0.3/bin:$PATH"

image.png

3、在VSCode中编写C++代码,并生成compile_commands.json文件。关于生成compile_commands.json的方法参看官方文档:Getting started

4、打开任意一个cpp文件,VSCode clangd插件就会根据compile_commands.json文件的描述建立索引,建立好的索引放在当前工程的.cache目录下。若想重新建立索引,则删除.cache目录,然后打开任意一个cpp文件,重新触发索引建立过程。
image.png

5、若是VSCode + mingw环境搭建,则需要告诉clangd插件编译器的位置,否则会提示找不到头文件。
打开clangd插件设置,添加如下配置:
image.png
也可直接在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:程序启动参数。

标签:插件,clangd,CMake,language,VSCode,server
From: https://www.cnblogs.com/sinicheveen/p/16746027.html

相关文章