正如标题所示,它是找不到的输出文件,不知道为什么这是一个问题,这是我的 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 文件。我只是查看错误消息并推断一定发生了什么以及为什么。