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

Posted

技术标签:

【中文标题】vscode在构建c文件时报告活动文件不是C或C++源文件【英文标题】:vscode report that the active file is not a C or C++ source file while building a c file 【发布时间】:2022-01-18 08:59:34 【问题描述】:

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 文件,它是工作区文件夹。问题的原因可能是什么?

【问题讨论】:

【参考方案1】:

正如 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

【讨论】:

以上是关于vscode在构建c文件时报告活动文件不是C或C++源文件的主要内容,如果未能解决你的问题,请参考以下文章

windows编译libevent时报告“缺少print_winsock_errors.obj”的解决

开发环境Ubuntu 中使用 VSCode 开发 C/C++ ④ ( 创建 tasks.json 编译器构建配置文件 | tasks.json 编译器构建配置文件分析 )

开发环境Ubuntu 中使用 VSCode 开发 C/C++ ④ ( 创建 tasks.json 编译器构建配置文件 | tasks.json 编译器构建配置文件分析 )

C++Vscode 中使用CMakeLists(推荐)构建C++项目:项目结构各个文件夹的作用从编码到debug

vscode怎么运行代码

VSCode编写C/C++语言,配置文件和注意事项