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"
中构建 ...
示例案例:
文件夹结构:
- cpp
- .vscode
- tasks.json
- 文件夹1
- 文件夹2
- example.cpp
在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 扩展更新:
总结:
虽然在 tasks.json 中 g++ 的目标参数显然是 "${fileDirname}\${fileBasenameNoExtension}.exe"
,但它决定在 "${workplaceFolder}\${fileBasenameNoExtension}.exe"
中构建 ...
示例案例:
文件夹结构:
- cpp
- .vscode
- tasks.json
- 文件夹1
- 文件夹2
- example.cpp
- 文件夹2
- .vscode
在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 扩展更新: