vscode+wsl编译调试C++工程

tl;dr

安装remote-WSL插件

安装C++调试工具

在wsl中要安装gdb与对应的编译工具

code . 可在vscode中打开当前文件夹,并远程连接。

效果


前言

虽然自己搭建的vim里面的调试也很好用了,在工具上依然不如可视化的调试环境好用,所以使用vscode自己折腾一下调试环境,平时自己写代码一般在wsl中,所以尝试用一下vscode的远程调试结合wsl。

vscode给的文档相当清楚明白

说说主要的地方。

安装WSl

​ 这里略过,参照其他的安装方法,网上很多。

安装vsCode插件

点击如图所示左边第五个图标,打开扩展市场,搜索里面的remote-WSl插件, 也可以点此安装

image-20200303100745429

在wsl中打开vsCode

​ 在wsl中新建一个文件夹作为工程目录,例如我新建一个test文件加作为工程目录

image-20200303101215609

然后运行命令:code .

首次运行的时候会出现安装提示,稍后会打开vscode, 发现vscode的底部状态栏有如下的状态。

image-20200303101344778

说明已经连接,并且此时vscode打开的目录就是你的工程目录。

image-20200303101709216

编译配置文件

此时如果需要编译,那么就需要添加编译配置,创建一个tasks.json 文件,设置编译相关的命令。也可以如下所示直接使用编译,vscode会提示创建tasks.json文件。

image-20200303101755621

image-20200303102040565

  • 生成的tasks.json为默认的内容,需要对其进行修改。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    "tasks": [
    {
    "label": "build demo",
    "type": "shell",
    "command": "/usr/bin/g++",
    "args": [
    "-g",
    "${file}",
    "-o",
    "${fileDirname}/${fileBasenameNoExtension}"
    ],
    "group": {
    "kind": "build",
    "isDefault": true
    }
    }
    ]

    以上配置需要在要编译的文件的页面进行编译,因为${file} 获取的是当前文件名,以上仅为例子,如果编译工程需要使用make或者cmake等工具跟上面使用方法一样,改变command和args即可。

  • 再次重复上面,Terminal > Run Build Task 选择即可。

调试配置文件

调试需要再安装一个拓展插件 C/C++, 点击可安装

image-20200303103515254

  • 创建一个launch.json 文件,配置调试选项

如图可以新建一个默认的编译并调试的launch.json文件,只需要对其简单修改即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"configurations": [
{
"name": "g++ build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build demo", //编译的task的名称
"miDebuggerPath": "/usr/bin/gdb" //gdb的路径
}
]

这样就可以编译与调试了。

编译与调试

参考连接

https://code.visualstudio.com/docs/cpp/config-wsl