我已经测试过通过WSL在vscode上对多个文件进行编码
code .
在好文件夹中。
我有三个文件。
这是我获得的错误消息,而代码是正确的:
g ++:错误:helloworld.cpp:没有这样的文件或目录
g ++:错误:file2.cpp:没有这样的文件或目录 g ++:错误:file3.cpp:没有这样的文件或目录
g ++:致命错误:没有输入文件
编译终止。
终端进程终止,退出代码为:1
终端将被任务重用,按任意键将其关闭。
这是我的task.json文件:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"helloworld.cpp","file2.cpp","file3.cpp",
"-o",
"executable.out"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
请帮助您解决该问题,而使用此处提到的单个文件就可以了:
https://code.visualstudio.com/docs/cpp/config-wsl#_modifying-tasksjson
我还精确地说.cpp文件不在.vscode文件夹中,而是在项目的主文件夹中。 预先感谢
ps:我看到了有关该问题的多个线索,但这并不能解决我的问题。
答案 0 :(得分:1)
带有tasks.json
的原始示例具有参数:
"args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
"options": {
"cwd": "/usr/bin"
},
这很好,因为${file}
将包含实际文件的绝对路径,因此cwd
的设置位置无关紧要。如果您有:
"args": [
"-g",
"helloworld.cpp","file2.cpp","file3.cpp",
"-o",
"executable.out"
],
"options": {
"cwd": "/usr/bin"
},
VSCode正在寻找文件/usr/bin/helloworld.cpp
,/usr/bin/file2.cpp
,/usr/bin/file3.cpp
-这显然是错误的。
解决方案是将当前目录更改为当前工作空间文件夹:
"options": {
"cwd": "${workspaceFolder}",
},
有关所有可能的变量,请咨询reference