Inhaltsverzeichnis

C++ MingW64 in Visual Studio Code

Installation

  1. Visual Studio Code installieren
  2. In VS Code die Extension "C/C++ extension for VS Code" nachinstallieren
  3. Die GCC-Compilersuite installieren per MSYS2
    1. Den Online-Installier wie in Schritt 1 verlinkt herunterladen und starten
    2. Installationspfad c:\msys64
    3. Nach der Installation "Run MSYS2 now"
    4. pacman -Syu
    5. es werden Updates installiert, anschließend muss das Fenster geschlossen werden. Danach ein neues MSYS-Fenster aufmachen
    6. pacman -Su
    7. pacman -S –needed base-devel mingw-w64-x86_64-toolchain
    8. Anschließed den Pfad C:\msys64\mingw64\bin in die Systemumgebungsvariablen einspeichern.
    9. 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 übergeben1). 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
            }
        }
    ]
}

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 2)

VS Code auf G++ optimieren

Quelle: https://code.visualstudio.com/docs/cpp/config-mingw