Мне удалось построить и отладить мой проект C ++ (mingw) с помощью кода Visual Studio. Я хочу быть в состоянии сделать это с Visual Studio 2019 (как обсуждено здесь ). Для этого, похоже, мне нужно запустить команды сборки в другой оболочке. Это конфиг, который я использую для VS Code:
в .vscode/settings.json
:
{
"terminal.integrated.shell.windows": "C:\\tools\\msys64\\usr\\bin\\bash.exe",
"terminal.integrated.shellArgs.windows": [
"--login",
"-i"
],
"terminal.integrated.env.windows": {
"MSYSTEM": "MINGW64",
"CHERE_INVOKING":"1"
}
}
в .vscode/tasks.json
:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "build",
"command": "sh",
"args": [
"build.sh"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Это работает очень хорошо , Мой сценарий build.sh
выполняет различные команды для компиляции моего проекта.
Но я хочу иметь возможность разрабатывать свой проект в Visual Studio 2019 (не в коде Visual Studio), поскольку VS Code все еще не хватает в паре «Обязательные» возможности разработки на C ++.
Но моя проблема в том, что я не понимаю, как заставить Visual Studio выполнять команды сборки в другой оболочке, как это делает VS Code . Таким образом, команды сборки не работают, так как они не выполняются в среде msys2, mingw64.
Это мой файл .vs/tasks.vs.json
:
{
"version": "0.2.1",
"tasks": [
{
"taskLabel": "build",
"appliesTo": "/",
"type": "launch",
"command": "sh",
"args": ["build.sh"],
"env": "Mingw64",
"customLaunchCommand": "C:\\tools\\msys64\\usr\\bin\\bash.exe",
"customLaunchCommandArgs": [
"--login",
"-i"
]
}
]
}
Этот файл конфигурации был моим лучшим Спорим, как заставить команду sh build.sh
выполняться в командной оболочке, открытой командой C:\tools\msys64\usr\bin\bash.exe --login -i
.
Может кто-нибудь сказать мне, как заставить Visual Studio 2019 выполнять команды сборки в оболочке msys2, например VS Код делает?
РЕДАКТИРОВАТЬ :
Так что, возможно, я все ближе с этим, а может и нет. Следуя примерам в документах Visual Studio 2019, мой .vs/CppProperties.json
теперь выглядит следующим образом:
{
"configurations": [
{
"inheritEnvironments": [
"mingw_64"
],
"name": "Mingw64",
"includePath": [
"${workspaceRoot}\\**"
],
"intelliSenseMode": "linux-gcc-x64",
"environments": [
{
"MINGW_PREFIX": "C:\\tools\\msys64",
"MINGW_CHOST ": "x86_64-w64-mingw32",
"MINGW_PACKAGE_PREFIX": "mingw-w64-x86_64",
"MSYSTEM": "MINGW64",
"MSYSTEM_CARCH": "x64_64",
"MSYSTEM_PREFIX": "${env.MINGW_PREFIX}",
"SHELL": "${env.MINGW_PREFIX}\\usr\\bin\\bash.exe --login -i",
"TEMP": "${env.MINGW_PREFIX}/../tmp",
"TMP": "${env.TEMP}"
}
]
}
]
}
И мой .vs/tasks.vs.json
:
{
"version": "0.2.1",
"tasks": [
{
"taskLabel": "build",
"appliesTo": "build.sh",
"contextType": "build",
"type": "default",
"command": "sh",
"args": [
"build.sh"
],
"inheritEnvironments": [ "Mingw64" ]
}
]
}
Но, тем не менее, кажется, Visual Studio по-прежнему не использует оболочку msys2 для выполнения задачи сборки. Как на самом деле использовать «конфигурацию», определенную в файле CppProperties.json
, для меня загадка ...