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
}

これは私のtask.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。コンパイラは2番目のディレクトリパスを表示しますが、これはオプションの引数ではないため、ソースファイルのようにコンパイルで使用しようとします。診断メッセージには、デバッグ出力にこのディレクトリパスが記載されています。

欠落しているのは、-I2番目のディレクトリパスの前にある別のオプションです。

あるいは、JSONジョブ仕様からそのパスへの言及を削除することもできます。これは、デフォルトで検索される~/../../usr/include/ディレクトリと同じである可能性があるためです/usr/include(ホームディレクトリがLinuxシステムの一般的なディレクトリよりもファイル階層で低い場合を除く)。

私はVSCodeユーザーではなく、以前にこれらのJSONファイルを見たことがありません。私はちょうどエラーメッセージを見て何が起こったのか、その理由を推論しました。

関連情報