我刚刚开始在WSL中设置我的VS代码。我遵循了Windows subsystem for Linux上来自GCC的指示。大多数工作已经完成,只有一个问题。对于这一部分:
修改tasks.json
您可以使用
${workspaceFolder}/*.cpp
之类的参数代替${file}
来修改task.json以构建多个C ++文件。您还可以通过将${fileDirname}/${fileBasenameNoExtension}
替换为硬编码的文件名(例如“ helloworld.out”)来修改输出文件名。
我想编译多个cpp文件,但是该方法从${workspaceFolder}/*.cpp
而不是${file}
的上方提供对我不起作用。替换后,g ++似乎将* .cpp识别为文件,因此找不到它。
这是终端显示的内容。
g++: error: /.../.../*.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
The terminal process terminated with exit code: 1
答案 0 :(得分:0)
请尝试以下操作:"${workspaceFolder}/**.cpp"
在您发布的网站上,示例tasks.json
就是这样
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": ["-g", "${workspaceFolder}/**.cpp", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
我无法告诉您双星号 * 背后的原因,但是它将所有以.cpp结尾的文件都保存在当前文件夹中。
答案 1 :(得分:0)
我发现问题出在我的文件夹名称上。我的文件夹名称中有一个空格,因此更改文件夹名称可以解决此问题。使用空间确实不是一个好习惯。但是,如果您仍然想使用包含空格的名称,请执行“ \” $ {workspaceFolder} \“ / .cpp” 而不是 “ $ {workspaceFolder} / .cpp” 。