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. 컴파일러는 두 번째 디렉토리 경로를 볼 것이며, 이는 어떤 옵션에 대한 인수가 아니기 때문에 소스 파일인 것처럼 컴파일에서 사용하려고 시도합니다. 진단 메시지에는 디버그 출력에 이 디렉터리 경로가 언급되어 있습니다.

누락된 것은 -I두 번째 디렉터리 경로 앞의 또 다른 옵션입니다.

또는 JSON 작업 사양에서 해당 경로에 대한 언급을 제거할 수도 있습니다 . 기본적으로 검색되는 ~/../../usr/include/디렉터리와 동일 할 수 있기 때문입니다 /usr/include(홈 디렉터리가 Linux 시스템의 일반적인 디렉터리보다 파일 계층 구조에서 낮은 경우는 제외).

저는 VSCode 사용자가 아니며 이전에 이러한 JSON 파일을 본 적이 없습니다. 나는 방금 오류 메시지를 보고 무슨 일이 일어났는지, 그 이유를 추론했습니다.

관련 정보