VScode的tasks.json和lanuch.json简单配置

284 阅读1分钟

近来使用VScode+CMake 调试C/C++,看了很多文章教程和小视频。总终于看懂点眉目,记录下一下。

tasks.json

{
    "tasks": [
        {
            "label": "Build", //任务的名字叫Build,注意是大小写区分的,launch中调用任务名
            "dependsOrder": "sequence", // 按列出的顺序执行任务依赖项
            "dependsOn": [
                "g++", //任务名称
                "make" //任务名称
            ] //顺序执行任务
        },
        {
            "label": "g++",
            "type": "shell", //指定任务类型为shell命令
            "command": "g++", //具体的shell命令
            "args": [
                "-g",
                "${workspaceFolder}/src/Test.cpp",
                "${workspaceFolder}/src/cJSON.c",
                "-I./include",
                "-ldl",
                "-o",
                "Test"
            ], //调用此任务时传递给命令的参数,在我这里 总的命令就是g++ -g /mnt/c/WSLU/WHH/src/Test.cpp /mnt/c/WSLU/WHH/src/cJSON.c -I./include -ldl -o Test
            //${workspaceFolder}是/mnt/c/WSLU/WHH,当前工作路径:当前文件所在的工作空间
            "options": {
                "cwd": "${workspaceFolder}" //指定命令执行所在路径,${workspaceFolder}当前文件所在的工作空间
            },
            "group": {
                "kind": "build",
                "isDefault": true
                // 任务分组
                // 在build组的任务们,可以通过在Command Palette(F1) 输入run build task来运行,运行会执行是build组的命令
                //是执行一次运行调试后,才有这个任务组配置可选(才能通过在Command Palette(F1) 输入run build task来运行)
                // 当然,如果任务分组是test,你就可以用run test task来运行
                //官方解释 group:控制是否使用拆分窗格在特定的终端组中执行任务。同一组中的任务(由字符串值指定)将使用拆分终端显示而不是新的终端面板。
            },
            "problemMatcher": [
                "$gcc" // 使用gcc捕获错误
            ]
        },
        {
            "label": "make",
            "type": "shell",
            "options": {
                "cwd": "${workspaceFolder}/Air/build"
            }, //指定命令执行所在路径
            "command": "make",
            "args": [],
            "group": {
                "kind": "build",
                "isDefault": true
                // 任务分组
                // 在build组的任务们,可以通过在Command Palette(F1) 输入run build task来运行,运行会执行是build组的命令
                //是执行一次运行调试后,才有这个任务组配置可选(才能通过在Command Palette(F1) 输入run build task来运行)
                // 当然,如果任务分组是test,你就可以用run test task来运行
                //官方解释 group:控制是否使用拆分窗格在特定的终端组中执行任务。同一组中的任务(由字符串值指定)将使用拆分终端显示而不是新的终端面板。
            },
        }
    ],
    "version": "2.0.0"
}

lanuch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/Test", //执行程序的路径+执行程序
            "args": [],
            "stopAtEntry": false, // 选为true则会在打开控制台后停滞,暂时不执行程序
            "cwd": "${workspaceFolder}", // 当前工作路径:当前文件所在的工作空间
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build", //在launch之前运行的任务名,这个名字一定要跟tasks.json中的任务名字大小写一致
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}