vscode 连接 wsl2 下 linux 配置纯 clang 编译调试环境

发布时间 2023-07-05 11:12:53作者: AsindE
  1. 安装 clang, ArchLinux 下 sudo pacman -S clang
    安装 lldb, ArchLinux 下 sudo pacman -S lldb

  2. vscode 安装 clangdcodelldb(调试用) 插件,其中 codelldb 插件建议手动安装,官方下载连接:codelldb-linux.vsix。下载好后移进文件夹中,用 vscode 打开,右键该文件安装扩展即可。

  3. 在 vscode 打开的文件夹中新建 .vscode 文件夹,在 .vscode 文件夹下再分别新建两个文件:launch.jsontasks.json。文件具体内容如下:

    launch.json

    {
        "version": "0.2.0",
        "configurations": [
            {
                "type": "lldb", // 如果要 clang 编译调试就保持 lldb 不变
                "request": "launch",
                "name": "Debug",
                "program": "${workspaceFolder}/${fileBasenameNoExtension}",
                "args": [],
                "cwd": "${workspaceFolder}",
                "preLaunchTask": "cppbuild", // 与 tasks.json 中 tasks 的 label 对应。
            }
        ]
    }
    

    tasks.json

    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "cppbuild", // 与 launch.json 中 preLaunchTask 对应。
                "type": "shell",
                "command": "/usr/bin/clang++",
                "args": [ // 编译时的参数设置
                    "-std=c++2a",
                    "-Wall",
                    "-fdiagnostics-color=always",
                    "-g", // 加入调试信息
                    "${file}",
                    "-o",
                    "${fileDirname}/${fileBasenameNoExtension}"
                ],
                "presentation": { // 可自行删去
                    "reveal": "silent"
                },
            }
        ]
    }
    
  4. 这时候写个 hello world 打个断点就能调试了。

    本人在配置完后的的文件分布:

    .
    ├── t
    ├── t.cpp
    └── .vscode
        ├── launch.json
        └── tasks.json
    

代码格式化:clang-format 缩进修改为 4

  1. 生成 clang-format 配置文件,可以先检查下有 clang-format 命令是否有效。

    clang-format -style=llvm -dump-config > .clang-format
    
  2. 修改 .clang-format 文件,设置4空格缩进

    AccessModifierOffset: -4
    IndentWidth: 4
    
  3. 在设置中将 Clang_format_style 一项改为如下内容,其中 ~.clang-format 的存放路径。

    file:~/.clang-format