VScode + WSL +一键自动编译

具体教程网上已经有了很多无非是自己写一个Task脚本设置一件运行该脚本,本文在他人脚本的基础上加入了编译后自动运行结果,希望能帮助到有需要的人,具体的教程操作可以参考https://blog.csdn.net/Jerry_xzj/article/details/89705643
本人修改的编译运行脚本如下

{
    // 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 test.out
            "args": [
                "-std=c++11",       //使用c++11标准编译
                "-g",               //带调试信息的编译
                "${fileBasename}",             //编译所有.cpp文件
                "-o",                  //编译生成对应.out文件
                "${fileBasenameNoExtension}" //生成对应名称的可执行文件
            ],
            "group": {
                "kind": "build",    //此task分在build组中
                "isDefault": true
            },
            "presentation": { 
                "panel": "new" //默认为“shared“表示共享,改成new之后每个进程创建新的端口
            }// 添加这一整块代码块
        },
        {
            "label": "run",     //下面是负责编译完成后运行
            "type": "shell",        //指下方的command为shell命令
            "command": "./${fileBasenameNoExtension}",       // ./可执行文件名
            "group": {
                "kind": "build",    //此task分在build组中
                "isDefault": true
            },
            "dependsOn": [          //该任务依赖于compile任务,执行run之前先执行compile
                "compile"
            ],
            "presentation": { 
                "panel": "new" //默认为“shared“表示共享,改成new之后每个进程创建新的端口
            }// 添加这一整块代码块
        }
    ]
}

每次执行时只要按F6选择run 任务就可以进行编译运行,

补充:添加WSL 下的F5调试

{ 
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - 生成和调试活动文件",       //自定义名称
            "type": "cppdbg",
            "request": "launch",
            "preLaunchTask": "compile", //链接到之前的task.json
            "program": "/mnt/d/.leetcode/${fileBasenameNoExtension}",         //task编译所产生的文件[]这里不能使用${fileDirname},必须使用wsl地址格式而不是Windos
            "args": [],
            "stopAtEntry": false,
            "miDebuggerArgs": "",
            "cwd": "/mnt/d/.leetcode/",   //current working directory 当前工作目录,用wsl的格式写
            "environment": [],
            "externalConsole": false,
            "sourceFileMap": {
                "/mnt/d/": "D:\\"          //将当前工作路径的磁盘格式更改为windows格式
            },
            "pipeTransport": {
                "debuggerPath": "/usr/bin/gdb",
                "pipeProgram": "${env:windir}\\System32\\bash.exe", //根据自己bash.exe程序所在位置进行修改
                "pipeArgs": [
                    "-c"
                ],
                "pipeCwd": ""
            },
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
    ]
}

你可能感兴趣的:(vscode,bash,ide)