安装插件

插件截图

认准microsoft标志

配置task.json

在根目录的.vscode目录下新建编译任务文件 task.json,必须有g++

{
    "tasks": [
        {
            "type": "cppbuild",
            // 任务的名称,类比makefile里面的target
            // launch文件可以用这个名字来配置依赖,类比makefile里面的prerequisites
            "label": "C/C++: g++ build active file",
            // 编译器的路径,这里是g++
            "command": "/usr/bin/g++",
            // 编译器的参数,会被传给g++
            // 当我们的代码依赖额外的库或者头文件时,通过这个配置来添加
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                // ${file}为当前打开的文件,比如helloworld.cpp
                // 当我们将其改为*.cpp时,它会编译所有cpp文件
                "${file}",
                "-o",
                // ${fileDirname}为当前打开的文件所在的文件夹
                // fileBasenameNoExtension为当前打开的文件名(没有扩展名),比如helloworld
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}" // current working directory被设为当前文件的文件夹
            },
            // problemMatcher会分析任务运行结果,然后将其中出现的错误或者警告,显示在问题面板中。
            "problemMatcher": [
                "$gcc"
            ],
            // 任务分组,将当前任务分到build组,可以通过在Command Palette
            // 输入run build task来运行build组的任务
            // 当然,如果任务分组是test,可以用run test task来运行 
            "group": {
                "kind": "build",
                "isDefault": true
            },
            // 任务细节,可以自己修改
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

配置launch.json

配置编译文件launch.json文件,必须有gdb

{
    "configurations": [
        {
            // 这个调试任务的名字
            "name": "C/C++: g++ build and debug active file",
            // 调试任务的类型,它是由C/C++ extension定义的
            "type": "cppdbg",
            "request": "launch",
            // 被调试的程序的路径
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            // 被调试的程序的参数,这里我们的程序没有参数,故为空
            "args": [],
            // 是否则main函数设置断点
            "stopAtEntry": true,
            // 当前工作目录,current working directory
            "cwd": "${fileDirname}",
            // 环境变量
            "environment": [],
            // 是否使用
            "externalConsole": false,
            // 调试器,只能是gdb或者lldb
            "MIMode": "gdb",
            // gdb或者lldb的配置参数
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            // 前置依赖的任务,就是tasks.json里面的任务名字
            "preLaunchTask": "C/C++: g++ build active file",
            // debug工具的路径
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ],
    "version": "2.0.0"
}

然后就可以编译和调试cpp文件了。

最后修改:2023 年 12 月 10 日
做兄弟、在心中!