VS代码无法编译多个C ++文件(WSL)

时间:2020-04-12 11:01:14

标签: c++ visual-studio-code

我刚刚开始在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

2 个答案:

答案 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”