VS Code 插件推荐与C/C++配置(2)

// https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,这里只能为cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true
            "cwd": "${workspaceFolder}", // 调试程序时的工作目录
            "environment": [], // (环境变量?)
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
            "MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。
            "miDebuggerPath": "gdb.exe", // 调试器路径,Windows下后缀不能省略,Linux下则去掉
            "preLaunchTask": "build" // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
        }
    ]
}

setting.json:

{
    "files.associations": {
        "iostream": "cpp"
    }
}

tasks.json:

// https://code.visualstudio.com/docs/editor/tasks

{

    "version": "2.0.0",

    "tasks": [

        {

            "label": "build", // 任务名称,与launch.json的preLaunchTask相对应

            "command": "g++", // 要使用的编译器

            "args": [

                "-g",// 生成和调试有关的信息

                "${file}",

                "-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out

                "${fileDirname}\\${fileBasenameNoExtension}.exe",

                //"${fileDirname}/${fileBasenameNoExtension}.exe",

            ], // 编译命令参数

            "type": "shell", // 可以为shell或process,前者相当于先打开shell再输入命令,后者是直接运行命令

            "group": {

                "kind": "build",

                "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提

            },

            "problemMatcher":{

                "owner": "$gcc",

                "fileLocation":"absolute",

                "pattern":[

                    {

                        "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",

                        "file": 1,

                        "line": 2,

                        "column": 3,

                        //"location": 2,

                        "message": 5

                    }

                ]

             }

        }

    ]

}

Linux

launch.json

{

    // 使用 IntelliSense 了解相关属性。

    // 悬停以查看现有属性的描述。

    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",

    "configurations": [

        {

            "name": "gcc build and debug active file",

            "type": "cppdbg",

            "request": "launch",

            "program": "${fileDirname}/${fileBasenameNoExtension}",

            "args": [],

            "stopAtEntry": false,

            "cwd": "${workspaceFolder}",

            "environment": [],

            "externalConsole": false,

            "MIMode": "gdb",

            "setupCommands": [

                {

                    "description": "Enable pretty-printing for gdb",

                    "text": "-enable-pretty-printing",

                    "ignoreFailures": true

                }

            ],

            "preLaunchTask": "gcc build active file",

            "miDebuggerPath": "/usr/bin/gdb"

        }

    ]

}

tasks.json

{

// 有关 tasks.json 格式的文档,请参见

    // https://go.microsoft.com/fwlink/?LinkId=733558

    "version": "2.0.0",

    "tasks": [

        {

            "type": "shell",

            "label": "gcc build active file",

            "command": "/usr/bin/gcc",

            "args": [

                "-g",

                "${file}",

                "-o",

                "${fileDirname}/${fileBasenameNoExtension}",

                "-l",

                "pthread"

            ],

            "options": {

                "cwd": "/usr/bin"

            },

            "problemMatcher": [

                "$gcc"

            ]

        }

    ]

}

配置说明

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11635.html