제목에서 알 수 있듯이 출력 파일을 찾을 수 없습니다. 이것이 왜 문제인지 잘 모르겠습니다. 여기 내 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 파일을 본 적이 없습니다. 나는 방금 오류 메시지를 보고 무슨 일이 일어났는지, 그 이유를 추론했습니다.