g++ 在错误的目录中构建:${workspaceFolder}\file.exe 而不是 ${fileDirname}\file.exe

g++ builds in wrong directory: ${workspaceFolder}\file.exe instead of ${fileDirname}\file.exe

总结:

虽然在 tasks.json 中 g++ 的目标参数显然是 "${fileDirname}\${fileBasenameNoExtension}.exe",但它决定在 "${workplaceFolder}\${fileBasenameNoExtension}.exe" 中构建 ...

示例案例:

文件夹结构:

在tasks.json中:

{
    "version": "2.0.0",
    "tasks": [
    {
      "type": "cppbuild",
      "label": "C/C++: g++.exe build active file",
      "command": "C:\dev\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe",
      "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}\${fileBasenameNoExtension}.exe"
      ],
      "options": { "cwd": "C:\dev\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin"  },
      "problemMatcher": [ "$gcc" ],
      "group": { "kind": "build",  "isDefault": true   },
      "detail": "compiler: C:\dev\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe"
    }
  ]
}

在example.cpp中:

#include <iostream>
int main()
{
  std::cout << "Why do i not get compiled in "cpp/folder1/folder2"?";
  return 0;
}

在 vscode 中打开 cpp 文件夹作为工作场所: 现在按 Ctrl+Shift+B 进行构建会导致 g++ 在 cpp/example.exe.

处构建 example.exe

请以某种方式提供Minimal, Reproducible Example。它可以帮助人们了解您的问题,以便我们可以更轻松地给您答复。

据我从你的问题中了解到,也许你只是在另一个目录中编译了 .exe 文件? (同样,因为你没有提供任何 Minimal, Reproducible Example 我不能完全理解你的错误)

也许可以尝试在 args:

中加入这样的内容
"-g",
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe"

已知问题和昨天已修复的问题。必须等待下一个 C/c++ vscode 扩展更新:

https://github.com/microsoft/vscode-cpptools/issues/6501