如何在 VS Code 中添加自定义编译命令?

How to add the custom compile commands in VS Code?

我通常在 Geany IDE 中进行竞争性编程,并且有以下自定义 compile 命令来编译 C++ 程序 -

g++ -std=c++17 -Wshadow -Wall -o "%e" "%f" -g -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG

编译命令由f9键绑定。我只需要按 f9,它会保存并编译文件,然后我切换到 bash 终端(f2 快捷键)来执行二进制文件。 终端也遵循当前在编辑器中打开的文件的路径。

我想要在 VS Code 中进行相同的设置。 到目前为止,我已经设法将编辑器和终端并排放置,并通过 f1f2.

轻松切换它们之间的焦点 但我无法设置自定义 compile 命令,将其与 f9 键绑定并配置终端,使其遵循当前焦点编辑器中的文件路径。
请给我一个完整的解决方案。直接编辑 json 设置文件会好得多。
这是我的 Geany IDE 中设置的快照:- This is how my Geany looks and the Setting boxes

您可以在 VS Code 中设置一个 custom task。编辑工作区 .vscode 文件夹中的 tasks.json 文件,如:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "My build task",
            "type": "shell",
            // Assign output file name with VSCode inner variables like ${fileBasename}
            "command": "g++ -std=c++17 -Wshadow -Wall -o ${fileBasename} -g -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG",
            "options": {
            },
            "problemMatcher": ["$gcc"],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

可以直接将编译命令写到"command"属性中,也可以将更多的命令写到脚本中,然后将简单的执行脚本命令写到属性中。

并且 "isDefault": true 属性使这个 default task 可以简单地与 ctrl+shift 绑定调用+B.