====== C++ MingW64 in Visual Studio Code ======
===== Installation =====
- Visual Studio Code installieren
- In VS Code die Extension "C/C++ extension for VS Code" nachinstallieren
- Die GCC-Compilersuite installieren per [[https://www.msys2.org/|MSYS2]]
- Den Online-Installier wie in Schritt 1 verlinkt herunterladen und starten
- Installationspfad c:\msys64
- Nach der Installation "Run MSYS2 now"
- pacman -Syu
- es werden Updates installiert, anschließend muss das Fenster geschlossen werden. Danach ein neues MSYS-Fenster aufmachen
- pacman -Su
- pacman -S --needed base-devel mingw-w64-x86_64-toolchain
- Anschließed den Pfad ''C:\msys64\mingw64\bin'' in die Systemumgebungsvariablen einspeichern.
- Installation überprüfen mit neuem Konsolenfenster und ''g++ --version'' und ''gdb --version''
===== tasks.json (build instructions) =====
Die tasks.json definiert den Compilevorgang. Dort werden alle Compilerparameter übergeben(([[https://code.visualstudio.com/docs/editor/variables-reference|Variablen-Referenz]])). Beispielhaft:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "SDL2",
"command": "g++.exe",
"args": [
"-g",
"*.cpp",
"-o",
"build\\game.exe",
"-IC:/Workspace/C++/libs/SDL2-2.0.22/x86_64-w64-mingw32/include",
"-LC:/Workspace/C++/libs/SDL2-2.0.22/x86_64-w64-mingw32/lib",
"-lmingw32",
"-lSDL2main",
"-lSDL2",
"-mwindows"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
* command: Der auszuführende Compiler
* args: Die Argumente, die als json-Array einzeln übergeben werden
* label: Name des Build-Vorgangs
* isDefault: Falls es mehrere Build-Anweisungen gibt, kann man darüber einen Default-Weg definieren.
===== launch.json (debug) =====
Über die launch.json wird definiert, wie aus dem Quellcode der Programmstart realisiert werden soll. So lässt sich zum Beispiel der Debugger konfigurieren.
Beispiel:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\build\\game.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "c:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "SDL2"
}
]
}
Problem "miDebuggerPath" - Wenn der Compiler damit abbricht, dass er den Debugger (dbg.exe) nicht finden kann, den kompletten Quellpfad nochmal per Tastatur eingeben. Anscheinend werden beim Copy-Pasten des Pfades kaputte Zeichen übertragen (([[https://github.com/Microsoft/vscode-cpptools/issues/2925|miDebuggerPath invalid]]))
===== VS Code auf G++ optimieren =====
* Ctrl + Shift + P
* C/C++: Edit Configurations (UI)
* Compilerpfad bis zur EXE angeben
* ggf. feste Compileroptionen angeben
* Intellisence-Modus auf windows-gcc-x64
* Libraries-Pfade fest übergeben
Quelle: [[https://code.visualstudio.com/docs/cpp/config-mingw]]
{{tag>[C++ MingW32 MingW64 Compiler Visual_Studio_Code Microsoft]}}