使用VS Code和WSL搭建C++编译、调试环境

  • 1. 准备
  • 2. 修改VSCode的默认shell
  • 3. 建立编译的task
  • 4. 建立调试环境
  • 5. 总结

1. 准备

  • WSL是 Windows 10 下 的一项功能,全称Window Subsystem for Linux。简而言之,在win10下运行linux!
  • Visual Studio Code (VSCode) 是一个由微软开发的,同时支持 Windows、Linux 和 macOS 操作系统的开源文本编辑器。它支持调试,内置了 Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段、代码重构等。
  1. 下载安装Visual Studio Code。

下载地址:https://code.visualstudio.com/download

  1. 安装win10 应用商店中的Ubuntu,在ubuntu中执行下面的命令来安装g++和gdb。
sudo apt-get install g++
sudo apt-get install gdb
  1. 打开VSCode的终端,输入bash回车,终端即变成1:wsl,即可编译c++程序。

2. 修改VSCode的默认shell

  • 为了不用每次都重复上述的改变终端操作。
  1. 在VSCode的用户设置中加入以下代码:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\wsl.exe"
  1. 打开VSCode的终端,终端默认为1:wsl

3. 建立编译的task

  • 新建一个task.json文件,该task的目的是编译程序(带调试信息),为后面做准备。
  1. 在工作文件夹中右键,选择Open with Code
  2. ctrl+shift+p,打开命令行,输入Tasks: Configure Task,选择使用模板创建task.json文件
  3. 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
            }
        }
    ]
}
  1. 配好了之后可以用快捷键ctrl+shift+b 运行这个task。注意这个快捷键只认分在build组的task。否则需要ctrl+shift+p输入Tasks: Run Task,然后选择相应的task.

4. 建立调试环境

  1. 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的格式
            }
        }
    ]
}
  1. 至此大功告成。按F5即可进行调试。

5. 总结

  1. 直接编译运行,则打开终端。默认的终端是1:wsl。输入以下命令即可:
g++ -std=c++11 temp.cpp
./a.out
  1. 若需要调试,按F5即可进行调试。

你可能感兴趣的:(C++)