====== 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]}}