使用VS Code和WSL搭建C++编译、调试环境
程序员文章站
2022-06-26 13:25:51
...
1. 准备
- WSL是 Windows 10 下 的一项功能,全称Window Subsystem for Linux。简而言之,在win10下运行linux!
- Visual Studio Code (VSCode) 是一个由微软开发的,同时支持 Windows、Linux 和 macOS 操作系统的开源文本编辑器。它支持调试,内置了 Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段、代码重构等。
- 下载安装Visual Studio Code。
- 安装win10 应用商店中的Ubuntu,在ubuntu中执行下面的命令来安装g++和gdb。
sudo apt-get install g++
sudo apt-get install gdb
- 打开VSCode的终端,输入
bash
回车,终端即变成1:wsl
,即可编译c++程序。
2. 修改VSCode的默认shell
- 为了不用每次都重复上述的改变终端操作。
- 在VSCode的用户设置中加入以下代码:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\wsl.exe"
- 打开VSCode的终端,终端默认为
1:wsl
。
3. 建立编译的task
- 新建一个task.json文件,该task的目的是编译程序(带调试信息),为后面做准备。
- 在工作文件夹中右键,选择
Open with Code
。 - 按
ctrl+shift+p
,打开命令行,输入Tasks: Configure Task
,选择使用模板创建task.json文件
。 - 将
task.json
中的内容替换为如下代码:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0", //task.json文件的语言版本
"windows": {
"options": {
"shell": {
"executable": "wsl.exe", //修改task执行的shell为WSL
"args": []
}
}
},
"tasks": [
{
"label": "compile", //自定义task的名字,在launch.json中会用到
"type": "shell", //指下方的command为shell命令
"command": "g++", //command和args在一块表示了:g++ -std=c++11 -g *.cpp
"args": [
"-std=c++11", //使用c++11标准编译
"-g", //带调试信息的编译
"*.cpp" //编译所有.cpp文件
],
"group": {
"kind": "build", //此task分在build组中
"isDefault": true
}
}
]
}
- 配好了之后可以用快捷键
ctrl+shift+b
运行这个task。注意这个快捷键只认分在build组的task。否则需要ctrl+shift+p
输入Tasks: Run Task
,然后选择相应的task.
4. 建立调试环境
- 在
task.json
同一目录下新建launch.json
文件,输入以下内容:
{
"version": "0.2.0", //launch.json文件的语言版本
"configurations": [
{
"name": "C++ Launch", //自定义名称
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "compile", //链接到之前的task.json
"program": "a.out", //task编译所产生的文件
"args": [
"-fThreading"
],
"stopAtEntry": false,
"cwd": "/mnt/d/CppCode/cppCode/mine", //current working directory 当前工作目录,用wsl的格式写
"environment": [],
"externalConsole": true,
"windows": {
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
"pipeTransport": {
"pipeCwd": "",
"pipeProgram": "c:\\windows\\sysnative\\bash.exe",
"pipeArgs": [
"-c"
],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
"/mnt/d/CppCode/cppCode/mine": "${workspaceFolder}" //将cwd中的目录改写为windows的格式
}
}
]
}
- 至此大功告成。按
F5
即可进行调试。
5. 总结
- 直接编译运行,则打开终端。默认的终端是
1:wsl
。输入以下命令即可:
g++ -std=c++11 temp.cpp
./a.out
- 若需要调试,按
F5
即可进行调试。
上一篇: 蓝桥杯 第十届 试题A 平方和