gcc 找不到正确的输出,因此无法编译我的 c 程序(vscode)

gcc 找不到正确的输出,因此无法编译我的 c 程序(vscode)

正如标题所示,它是找不到的输出文件,不知道为什么这是一个问题,这是我的 c_cpp_properties.json:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "~/edu/doa/code_base/datastructures-v1.0.13.0/include"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c99",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-gcc-x64",
            "compilerArgs": [
                "-Wall"
            ]
        }
    ],
    "version": 4
}

这是我的tasks.json:

{
    "tasks": [
        {
        "type": "cppbuild",
        "label": "C/C++: gcc build int_array_1d_mwe with DoA code base options",
        "command": "/usr/bin/gcc",
        "args": [
            "-fdiagnostics-color=always",
            "-std=c99",
            "-Wall",
            "-I",
            "~/edu/doa/code_base/datastructures-v1.0.13.0/include/", //Deklarationer
            "~/../../usr/include/",
            "-g",
            //"${workspaceFolder}/tabletest-1.9.c",
            "${workspaceFolder}/graph2.c", //Din_fil.c
            "~/edu/doa/code_base/datastructures-v1.0.13.0/src/dlist/dlist.c", //Definitioner
            "/home/manfred/edu/doa/code_base/datastructures-v1.0.13.0/src/array_1d/array_1d.c",
            "-o",
            "${workspaceFolder}/outputfile" //Output
        ],
        "options": {
            "cwd": "${fileDirname}"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "detail": "Customized for int_array_1d_mwe and DoA code base 1.0.13.0."
        }
    ],
    "version": "2.0.0"
}

这是我运行程序时的输出(无论如何调试): 在此输入图像描述

这是编译失败后单击“显示错误”时的错误页面: 在此输入图像描述

这是我得到的“无论如何调试”弹出窗口:

在此输入图像描述

答案1

在您的task.json文件中,后面-I跟着一个目录路径。这看起来没问题,但是~/../../usr/include/在调试选项之前您还有另一个目录路径-g。编译器将看到第二个目录路径,并且由于它不是任何选项的参数,因此会尝试在编译中使用它,就像它是源文件一样。诊断消息在调试输出中提到了此目录路径。

缺少的是-I第二个目录路径之前的另一个选项。

或者,由于可能与默认情况下搜索的~/../../usr/include/目录相同/usr/include(除非您的主目录在文件层次结构中的位置低于 Linux 系统上的通常目录),因此您可能希望删除 JSON 中对该路径的提及任务规范。

我不是 VSCode 用户,以前从未见过这些 JSON 文件。我只是查看错误消息并推断一定发生了什么以及为什么。

相关内容