vscode 在构建 c 文件时报告活动文件不是 C 或 C++ 源文件

vscode report that the active file is not a C or C++ source file while building a c file

vscode在构建c程序时报错。报错信息如下。

Cannot build and debug because the active file is not a C or C++ source file.
The terminal process failed to launch (exit code: -1).

任务配置文件如下。

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/gcc",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "/home/xxx/tmp/test/main.c"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

我在工作区文件夹 /home/xxx/tmp/test 下有一个名为 main.c 的 c 文件。问题的原因可能是什么?

如 Sean McManus 的 this 回复所示,您需要删除 tasks.json 中的所有 ${file} 引用,例如:

"args": [
    "-g",
    "${file}",
    "-o",
    "${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
    "cwd": "${fileDirname}"
}

改为

"args": [
    "-g",
    "test.cpp",
    "-o",
    "libs/test.o"
],
"options": {
    "cwd": "${fileDirname}"
}

并将构建类型从 cppBuild 更改为 shell