MinGW unter Windows 11/10 installieren: So richten Sie den GCC-Compiler ein, setzen die PATH-Variable und prüfen die Installation per CMD.

Um MinGW unter Windows 11/10 zu installieren, laden Sie am besten MSYS2 herunter, starten das Terminal „MSYS2 UCRT64“ und führen den Befehl pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain aus. Anschließend tragen Sie den Ordner C:\msys64\ucrt64\bin in die PATH-Umgebungsvariable ein. Danach prüfen Sie mit gcc --version, ob der Compiler läuft.
Alternativ entpacken Sie einfach das fertige WinLibs-Paket. Beide Wege werden hier Schritt für Schritt erklärt.
Was ist MinGW und wofür benötigen Sie es?
MinGW steht für „Minimalist GNU for Windows“. Dahinter steckt eine Sammlung von Werkzeugen, mit denen Sie C- und C++-Programme direkt unter Windows kompilieren. Im Mittelpunkt steht dabei die GNU Compiler Collection (GCC).
Dadurch entstehen echte, native Windows-Programme. Sie benötigen also weder eine virtuelle Maschine noch eine Linux-Umgebung. Zudem ist die komplette Werkzeugkette kostenlos und quelloffen.
Typischerweise setzen Sie MinGW in folgenden Fällen ein:
- C/C++ lernen, zum Beispiel für Studium, Ausbildung oder Schule
- Eigene Programme kompilieren, ohne Visual Studio zu installieren
- Open-Source-Projekte bauen, die auf GCC und Make setzen
- Editoren und IDEs wie Visual Studio Code, Code::Blocks oder CLion mit einem Compiler versorgen
- Bibliotheken wie SDL, Qt oder Boost unter Windows nutzen
MinGW, MinGW-w64 und MSYS2: die Unterschiede
Die Begriffe werden häufig verwechselt. Deshalb lohnt sich zunächst ein kurzer Überblick.
- MinGW (MinGW.org): Das ursprüngliche Projekt. Es unterstützt jedoch nur 32 Bit und gilt inzwischen als veraltet.
- MinGW-w64: Der moderne Nachfolger. Er unterstützt 32 Bit und 64 Bit und wird außerdem aktiv gepflegt.
- MSYS2: Eine Softwareverteilung mit Paketmanager (pacman). Sie liefert MinGW-w64, GCC und tausende Bibliotheken stets aktuell aus.
- WinLibs: Ein fertig gepacktes Archiv mit GCC und MinGW-w64. Es muss lediglich entpackt werden.
Wenn heute von „MinGW installieren“ die Rede ist, ist deshalb fast immer MinGW-w64 gemeint. Das alte MinGW mit dem Programm „mingw-get“ sollten Sie dagegen nicht mehr verwenden.
Ebenso veraltet ist der frühere Online-Installer von SourceForge („mingw-w64-install.exe“). Er liefert nämlich nur eine sehr alte GCC-Version und bricht zudem oft mit Fehlern ab.
UCRT oder MSVCRT: Welche Laufzeit ist richtig?
Beim Download begegnen Ihnen außerdem zwei Laufzeitbibliotheken. Diese Wahl wirkt zunächst kompliziert, ist jedoch schnell erklärt.
- UCRT (Universal C Runtime): Die moderne Laufzeit von Microsoft. Sie ist in Windows 10 und Windows 11 bereits enthalten und unterstützt zudem UTF-8 besser.
- MSVCRT: Die ältere Laufzeit. Sie ist hauptsächlich für sehr alte Windows-Versionen gedacht.
Für Windows 11/10 wählen Sie daher immer UCRT. Auch das MinGW-w64-Projekt selbst empfiehlt in seiner Anleitung die UCRT64-Umgebung von MSYS2.
Voraussetzungen für die Installation
Bevor Sie beginnen, prüfen Sie kurz die folgenden Punkte. Dadurch vermeiden Sie spätere Fehlermeldungen.
- Betriebssystem: Windows 11 oder Windows 10 in der 64-Bit-Version
- Speicherplatz: mindestens 2 GB frei, besser jedoch 5 GB
- Internetverbindung: für den Download der Pakete
- Benutzerrechte: Administratorrechte sind nur für systemweite Einstellungen nötig
- Installationspfad: ein kurzer Pfad ohne Leerzeichen und Umlaute, zum Beispiel
C:\msys64
Ob Ihr System mit 64 Bit arbeitet, sehen Sie unter Einstellungen > System > Info. Dort steht außerdem der Eintrag „Systemtyp“.
Beachten Sie zudem: Der reguläre Support für Windows 10 endete im Oktober 2025. MinGW funktioniert dort jedoch weiterhin problemlos. Die Schritte sind in beiden Systemen nahezu identisch.
Welche Installationsmethode passt zu Ihnen?
Es gibt mehrere Wege, MinGW-w64 einzurichten. Die folgende Übersicht hilft Ihnen deshalb bei der Entscheidung.
- MSYS2 (empfohlen): Ideal, wenn Sie regelmäßig programmieren. Außerdem installieren Sie Bibliotheken und Updates bequem per Befehl.
- WinLibs als ZIP: Ideal, wenn Sie nur schnell einen Compiler brauchen. Zudem ist keine Installation nötig, das Paket ist also portabel.
- winget: Ideal, wenn Sie alles über die Kommandozeile einrichten möchten. Dabei lädt Windows die Pakete automatisch.
Für die meisten Nutzer ist MSYS2 die beste Wahl. Wer hingegen nur ein einzelnes Programm übersetzen möchte, ist mit WinLibs schneller am Ziel.
Methode 1: MinGW-w64 über MSYS2 installieren (empfohlen)
MSYS2 liefert stets aktuelle Versionen von GCC und MinGW-w64. Außerdem erhalten Sie mit pacman einen Paketmanager, der Abhängigkeiten selbstständig auflöst.
Schritt 1: MSYS2 herunterladen
- Öffnen Sie Ihren Browser und rufen Sie die Seite msys2.org auf.
- Klicken Sie anschließend im Abschnitt „Installation“ auf die Installationsdatei.
- Die Datei heißt zum Beispiel „msys2-x86_64-20260611.exe“. Die Zahl am Ende steht dabei für das Veröffentlichungsdatum.
- Speichern Sie die Datei danach im Ordner „Downloads“.
Laden Sie MSYS2 ausschließlich von der offiziellen Seite. Dadurch erhalten Sie garantiert eine unveränderte Version.
Schritt 2: MSYS2 installieren
- Starten Sie die heruntergeladene Datei per Doppelklick.
- Bestätigen Sie anschließend die Sicherheitsabfrage von Windows mit „Ja“.
- Klicken Sie im Assistenten auf „Weiter“.
- Belassen Sie den Installationsordner bei
C:\msys64. Andere Pfade funktionieren zwar ebenfalls, dürfen jedoch keine Leerzeichen enthalten. - Klicken Sie erneut auf „Weiter“ und danach auf „Installieren“.
- Lassen Sie zum Schluss den Haken bei „MSYS2 jetzt ausführen“ gesetzt und klicken Sie auf „Abschließen“.
Daraufhin öffnet sich automatisch ein Terminalfenster. In der Titelzeile steht in der Regel „UCRT64“.
Schritt 3: MSYS2 aktualisieren
Zunächst bringen Sie das Grundsystem auf den neuesten Stand. Tippen Sie dafür folgenden Befehl ein und bestätigen Sie mit der Eingabetaste:
pacman -Syu
Beantworten Sie die Rückfrage anschließend mit J oder Y. Möglicherweise schließt sich das Fenster danach von selbst. Das ist jedoch normal.
Öffnen Sie in diesem Fall über das Startmenü erneut „MSYS2 UCRT64“. Führen Sie danach den Befehl noch einmal aus:
pacman -Syu
Erst wenn die Meldung erscheint, dass nichts mehr zu tun ist, ist das System vollständig aktuell.
Schritt 4: MinGW-w64-Toolchain installieren
Nun folgt der eigentliche Compiler. Geben Sie dazu im Fenster „MSYS2 UCRT64“ diesen Befehl ein:
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
Anschließend zeigt pacman eine Liste der enthaltenen Pakete an. Drücken Sie einfach die Eingabetaste, um alle Pakete auszuwählen. Bestätigen Sie danach die Installation mit J oder Y.
Dadurch landen unter anderem folgende Werkzeuge auf Ihrem Rechner:
- gcc – der C-Compiler
- g++ – der C++-Compiler
- gdb – der Debugger
- mingw32-make – das Build-Werkzeug Make
- gfortran – der Fortran-Compiler
- binutils – Linker, Assembler und weitere Hilfsprogramme
Falls Sie Speicherplatz sparen möchten, genügt alternativ der schlanke Befehl:
pacman -S mingw-w64-ucrt-x86_64-gcc
Dann fehlen allerdings Debugger und Make. Deshalb ist die komplette Toolchain für Einsteiger meist sinnvoller.
Schritt 5: Installation im MSYS2-Terminal testen
Prüfen Sie nun direkt im UCRT64-Fenster, ob alles funktioniert:
gcc --version
g++ --version
gdb --version
Erscheint jeweils eine Versionsnummer, war die Installation erfolgreich. Damit die Befehle jedoch auch in der Eingabeaufforderung, in PowerShell und in Ihrem Editor funktionieren, müssen Sie zusätzlich die PATH-Variable anpassen. Die Anleitung dazu finden Sie weiter unten.
Die MSYS2-Umgebungen im Überblick
Im Startmenü finden Sie nach der Installation mehrere Einträge. Jeder Eintrag steht dabei für eine eigene Umgebung.
- MSYS2 UCRT64: GCC mit moderner UCRT-Laufzeit. Das ist folglich die empfohlene Standardumgebung.
- MSYS2 MINGW64: GCC mit älterer MSVCRT-Laufzeit. Diese Umgebung ist hauptsächlich für Altprojekte gedacht.
- MSYS2 CLANG64: Clang/LLVM statt GCC, ebenfalls mit UCRT.
- MSYS2 CLANGARM64: Clang für Windows auf ARM-Prozessoren.
- MSYS2 MSYS: Die Basisumgebung für Verwaltungsaufgaben. Programme, die Sie hier bauen, hängen jedoch von einer zusätzlichen DLL ab.
Arbeiten Sie deshalb konsequent im Fenster „MSYS2 UCRT64“. Vermischen Sie außerdem keine Pakete verschiedener Umgebungen in einem Projekt.
Methode 2: MinGW-w64 mit WinLibs installieren (ohne Installer)
WinLibs ist ein eigenständiges Paket aus GCC und MinGW-w64. Es benötigt weder einen Installer noch einen Paketmanager. Daher eignet es sich besonders gut für schnelle Tests, Schulrechner oder USB-Sticks.
Aktuell enthält die neueste WinLibs-Ausgabe GCC 16.2.0 zusammen mit MinGW-w64 14.0.0. Darüber hinaus sind GDB, Make, CMake und Ninja bereits enthalten.
Schritt 1: Das richtige Paket herunterladen
- Rufen Sie im Browser die Seite winlibs.com auf.
- Scrollen Sie anschließend zum Abschnitt „Download“.
- Suchen Sie dort die Zeile mit dem Zusatz „UCRT“ und „POSIX threads“, die als „LATEST“ markiert ist.
- Wählen Sie danach unter „Win64“ die ZIP-Datei aus.
Der Dateiname beginnt in der Regel mit „winlibs-x86_64-posix-seh-gcc“. Die 7z-Variante ist zwar kleiner, erfordert jedoch ein Zusatzprogramm wie 7-Zip.
Außerdem gibt es Varianten mit und ohne LLVM/Clang. Für den Einstieg genügt jedoch die Variante ohne LLVM.
Schritt 2: Archiv entpacken
- Öffnen Sie den Ordner „Downloads“ im Explorer.
- Klicken Sie anschließend mit der rechten Maustaste auf die ZIP-Datei.
- Wählen Sie „Alle extrahieren“.
- Geben Sie als Ziel
C:\an und klicken Sie danach auf „Extrahieren“.
Danach existiert der Ordner C:\mingw64. Darin liegt zudem der wichtige Unterordner C:\mingw64\bin mit allen Programmen.
Schritt 3: PATH setzen und testen
Tragen Sie anschließend C:\mingw64\bin in die PATH-Variable ein. Wie das genau funktioniert, erklärt der Abschnitt zur PATH-Einrichtung.
Alternativ können Sie WinLibs auch ohne PATH-Eintrag nutzen. Rufen Sie dazu den Compiler einfach mit vollem Pfad auf:
C:\mingw64\bin\gcc.exe --version
Dadurch bleibt Ihr System völlig unverändert. Das ist beispielsweise praktisch, wenn Sie mehrere GCC-Versionen parallel verwenden möchten.
Methode 3: MinGW per winget installieren
Windows 11 und aktuelle Versionen von Windows 10 enthalten den Paketmanager winget. Damit installieren Sie MSYS2 oder WinLibs mit einem einzigen Befehl.
MSYS2 mit winget installieren
- Drücken Sie Windows-Taste + X.
- Wählen Sie anschließend „Terminal“ oder „Windows PowerShell“.
- Geben Sie danach folgenden Befehl ein:
winget install MSYS2.MSYS2
Anschließend fahren Sie wie in Methode 1 ab Schritt 3 fort. Der Compiler selbst muss nämlich weiterhin über pacman installiert werden.
WinLibs mit winget installieren
Ebenso lässt sich WinLibs direkt beziehen:
winget install BrechtSanders.WinLibs.POSIX.UCRT
Schließen Sie danach das Terminal und öffnen Sie es erneut. Prüfen Sie anschließend mit gcc --version, ob der Compiler gefunden wird. Falls nicht, ergänzen Sie den PATH manuell.
PATH-Umgebungsvariable einrichten
Die PATH-Variable teilt Windows mit, in welchen Ordnern nach Programmen gesucht wird. Ohne diesen Eintrag findet die Eingabeaufforderung den Befehl gcc folglich nicht.
Welchen Ordner Sie eintragen, hängt von der Methode ab:
- MSYS2 (UCRT64):
C:\msys64\ucrt64\bin - MSYS2 (MINGW64):
C:\msys64\mingw64\bin - WinLibs:
C:\mingw64\bin
PATH über die Systemeinstellungen ändern
- Drücken Sie Windows-Taste + R.
- Geben Sie anschließend
sysdm.cplein und bestätigen Sie mit der Eingabetaste. - Wechseln Sie danach auf die Registerkarte „Erweitert“.
- Klicken Sie unten auf „Umgebungsvariablen“.
- Markieren Sie im oberen Bereich „Benutzervariablen“ den Eintrag „Path“.
- Klicken Sie anschließend auf „Bearbeiten“ und dann auf „Neu“.
- Fügen Sie den passenden Ordner ein, zum Beispiel
C:\msys64\ucrt64\bin. - Bestätigen Sie zuletzt alle drei Fenster mit „OK“.
Alternativ tippen Sie im Startmenü einfach „Umgebungsvariablen“ ein. Wählen Sie dann den Treffer „Umgebungsvariablen für dieses Konto bearbeiten“.
PATH per PowerShell setzen
Wer lieber mit Befehlen arbeitet, nutzt stattdessen PowerShell. Der folgende Befehl ergänzt den Benutzer-PATH dauerhaft:
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path","User") + ";C:\msys64\ucrt64\bin", "User")
Passen Sie den Ordner bei WinLibs entsprechend an. Verzichten Sie hingegen auf den älteren Befehl setx in Verbindung mit %PATH%. Dieser kann lange Einträge nämlich abschneiden.
Wichtig: Terminal neu starten
Die Änderung gilt erst für neu geöffnete Fenster. Schließen Sie deshalb alle Terminals und auch Ihren Editor. Öffnen Sie anschließend alles erneut.
Tragen Sie außerdem nur den jeweiligen bin-Ordner der Toolchain ein. Den Ordner C:\msys64\usr\bin sollten Sie dagegen nicht global aufnehmen. Andernfalls überlagern Unix-Werkzeuge gleichnamige Windows-Befehle wie find oder sort.
Installation prüfen
Jetzt folgt der entscheidende Test. Öffnen Sie dazu die Eingabeaufforderung oder PowerShell und geben Sie nacheinander ein:
gcc --version
g++ --version
gdb --version
where gcc
Die ersten drei Befehle zeigen jeweils die installierte Version. Der Befehl where gcc nennt zusätzlich den Speicherort der Datei.
Erscheinen dabei mehrere Pfade, sind mehrere Compiler installiert. Windows verwendet dann stets den ersten Treffer. Entfernen Sie daher überflüssige Einträge aus dem PATH oder ändern Sie die Reihenfolge.
Erstes Programm kompilieren und ausführen
Mit einem kleinen Test stellen Sie sicher, dass die gesamte Werkzeugkette funktioniert.
C-Programm kompilieren
- Erstellen Sie zunächst einen Ordner, zum Beispiel
C:\projekte\hallo. - Öffnen Sie anschließend den Windows-Editor und fügen Sie diesen Code ein:
#include <stdio.h>
int main(void) {
printf("Hallo, Windows!\n");
return 0;
}
- Speichern Sie die Datei danach als
hallo.cin dem neuen Ordner. Wählen Sie dabei als Dateityp „Alle Dateien“. - Öffnen Sie nun ein Terminal und wechseln Sie in den Ordner:
cd C:\projekte\hallo
- Kompilieren Sie anschließend das Programm:
gcc hallo.c -o hallo.exe
- Starten Sie es zuletzt in der Eingabeaufforderung mit
hallo.exeoder in PowerShell mit.\hallo.exe.
Daraufhin erscheint der Text „Hallo, Windows!“. Somit ist Ihr Compiler voll einsatzbereit.
C++-Programm kompilieren
Für C++ verwenden Sie stattdessen den Befehl g++. Legen Sie dazu eine Datei hallo.cpp mit folgendem Inhalt an:
#include <iostream>
int main() {
std::cout << "Hallo aus C++!" << std::endl;
return 0;
}
Übersetzen Sie die Datei anschließend so:
g++ hallo.cpp -o hallo.exe -std=c++20 -Wall
Dabei aktiviert -std=c++20 den gewünschten Sprachstandard. Die Option -Wall schaltet zudem die wichtigsten Warnungen ein.
Nützliche Compiler-Optionen
Die folgenden Schalter benötigen Sie im Alltag besonders häufig:
-o name.exe– legt den Namen der Ausgabedatei fest-Wall -Wextra– zeigt zusätzliche Warnungen an-g– fügt Debug-Informationen für GDB hinzu-O2– optimiert das Programm auf Geschwindigkeit-std=c17oder-std=c++23– wählt den Sprachstandard-static– bindet die Laufzeitbibliotheken fest in die EXE ein-Iund-L– nennen zusätzliche Ordner für Header und Bibliotheken-l– verknüpft eine Bibliothek, zum Beispiel-lws2_32
Besonders wichtig ist dabei -static. Ohne diese Option benötigt Ihr Programm auf fremden Rechnern nämlich DLL-Dateien wie „libstdc++-6.dll“. Mit der Option läuft die EXE hingegen überall eigenständig.
MinGW in Visual Studio Code einrichten
Visual Studio Code ist der beliebteste Editor für MinGW. Die Einrichtung dauert zudem nur wenige Minuten.
Schritt 1: Erweiterung installieren
- Starten Sie Visual Studio Code.
- Drücken Sie anschließend Strg + Umschalt + X, um die Erweiterungen zu öffnen.
- Suchen Sie nach „C/C++“ vom Herausgeber Microsoft.
- Klicken Sie danach auf „Installieren“.
Optional installieren Sie zusätzlich das „C/C++ Extension Pack“. Es bringt außerdem Unterstützung für CMake mit.
Schritt 2: Compiler auswählen
- Öffnen Sie über „Datei > Ordner öffnen“ Ihren Projektordner.
- Öffnen Sie anschließend eine C- oder C++-Datei.
- Drücken Sie Strg + Umschalt + P.
- Geben Sie „C/C++: Konfigurationen bearbeiten (Benutzeroberfläche)“ ein.
- Tragen Sie bei „Compilerpfad“ den Wert
C:\msys64\ucrt64\bin\g++.exeein. Bei WinLibs lautet er entsprechendC:\mingw64\bin\g++.exe. - Wählen Sie bei „IntelliSense-Modus“ den Eintrag „windows-gcc-x64“.
Dadurch erkennt der Editor die Header-Dateien korrekt. Rote Unterstreichungen bei #include verschwinden somit.
Schritt 3: Kompilieren und debuggen
- Öffnen Sie Ihre Quelldatei.
- Klicken Sie anschließend oben rechts auf den Pfeil „Ausführen“.
- Wählen Sie „C/C++-Datei debuggen“.
- Entscheiden Sie sich danach für „g++.exe – Aktive Datei erstellen und debuggen“.
Visual Studio Code legt daraufhin automatisch eine Datei tasks.json im Ordner .vscode an. Darin steht der Build-Befehl. Bei Bedarf ergänzen Sie dort zusätzlich Optionen wie -Wall oder -std=c++20.
Mit F5 starten Sie künftig den Debugger. Haltepunkte setzen Sie außerdem per Klick links neben die Zeilennummer.
Tipp: UCRT64-Shell im integrierten Terminal
Zusätzlich können Sie die MSYS2-Shell direkt in den Editor einbinden. Öffnen Sie dazu die Datei settings.json und ergänzen Sie ein Terminalprofil mit diesem Pfad:
C:\msys64\msys2_shell.cmd -defterm -here -no-start -ucrt64
Dadurch stehen Ihnen pacman und alle Unix-Werkzeuge unmittelbar im Projektordner zur Verfügung.
MinGW in anderen Entwicklungsumgebungen nutzen
Auch andere Programme arbeiten problemlos mit MinGW-w64 zusammen. Meistens müssen Sie lediglich den Installationsordner angeben.
Code::Blocks
- Öffnen Sie „Settings > Compiler“.
- Wählen Sie anschließend oben „GNU GCC Compiler“.
- Wechseln Sie danach zum Reiter „Toolchain executables“.
- Tragen Sie als Installationsverzeichnis
C:\msys64\ucrt64oderC:\mingw64ein. - Klicken Sie zuletzt auf „Auto-detect“ und bestätigen Sie mit „OK“.
CLion
- Öffnen Sie „Settings > Build, Execution, Deployment > Toolchains“.
- Klicken Sie anschließend auf das Plus-Symbol und wählen Sie „MinGW“.
- Geben Sie danach bei „Toolset“ den Ordner
C:\msys64\ucrt64an.
CLion erkennt daraufhin Compiler, Make und Debugger automatisch.
Qt Creator, Eclipse und Dev-C++
Ebenso funktionieren Qt Creator, Eclipse CDT und Embarcadero Dev-C++. Dort wählen Sie jeweils in den Compiler-Einstellungen die Dateien gcc.exe, g++.exe und gdb.exe aus dem bin-Ordner aus.
Zusätzliche Werkzeuge und Bibliotheken installieren
Der große Vorteil von MSYS2 zeigt sich bei Erweiterungen. Statt Bibliotheken mühsam selbst zu bauen, installieren Sie diese einfach per Befehl.
Öffnen Sie dazu „MSYS2 UCRT64“ und verwenden Sie beispielsweise diese Befehle:
- CMake:
pacman -S mingw-w64-ucrt-x86_64-cmake - Ninja:
pacman -S mingw-w64-ucrt-x86_64-ninja - Git:
pacman -S git - SDL2:
pacman -S mingw-w64-ucrt-x86_64-SDL2 - Boost:
pacman -S mingw-w64-ucrt-x86_64-boost - Qt 6:
pacman -S mingw-w64-ucrt-x86_64-qt6-base
Darüber hinaus helfen folgende pacman-Befehle bei der Verwaltung:
pacman -Ss suchbegriff– sucht nach Paketenpacman -Qe– listet ausdrücklich installierte Pakete aufpacman -R paketname– entfernt ein Paketpacman -Sc– leert den Paket-Cache und spart dadurch Speicherplatz
Make richtig verwenden
Die MinGW-Toolchain liefert Make unter dem Namen mingw32-make.exe. Der Befehl make existiert in der Eingabeaufforderung deshalb zunächst nicht.
Rufen Sie stattdessen einfach mingw32-make auf. Innerhalb der UCRT64-Shell funktioniert dagegen auch make, sofern Sie das Paket base-devel installiert haben.
MinGW aktualisieren
Aktuelle Compiler bringen neue Sprachfunktionen und beheben zudem Fehler. Aktualisieren Sie die Installation deshalb regelmäßig.
MSYS2 aktualisieren
- Öffnen Sie „MSYS2 UCRT64“ über das Startmenü.
- Führen Sie anschließend diesen Befehl aus:
pacman -Syu
- Starten Sie das Fenster bei Bedarf neu und wiederholen Sie danach den Befehl.
Dadurch werden GCC, MinGW-w64 und sämtliche Bibliotheken gemeinsam aktualisiert.
WinLibs aktualisieren
Bei WinLibs gibt es dagegen keine Update-Funktion. Gehen Sie deshalb folgendermaßen vor:
- Laden Sie zunächst das neue ZIP-Archiv herunter.
- Benennen Sie anschließend den alten Ordner um, zum Beispiel in
C:\mingw64_alt. - Entpacken Sie danach das neue Archiv wieder nach
C:\. - Löschen Sie zuletzt den alten Ordner, sobald alles funktioniert.
Der PATH-Eintrag bleibt dabei unverändert gültig.
MinGW deinstallieren
Falls Sie MinGW nicht mehr benötigen, lässt es sich rückstandsfrei entfernen.
MSYS2 entfernen
- Öffnen Sie Einstellungen > Apps > Installierte Apps. Unter Windows 10 heißt der Bereich dagegen „Apps und Features“.
- Suchen Sie anschließend nach „MSYS2“.
- Klicken Sie auf „Deinstallieren“.
- Löschen Sie danach gegebenenfalls verbliebene Reste im Ordner
C:\msys64.
WinLibs entfernen
Hier genügt es, den Ordner C:\mingw64 zu löschen. Weitere Spuren hinterlässt das Paket nämlich nicht.
PATH-Eintrag löschen
Entfernen Sie abschließend den Eintrag aus der PATH-Variable. Öffnen Sie dazu erneut die Umgebungsvariablen, markieren Sie die Zeile und klicken Sie auf „Löschen“.
Häufige Fehler und ihre Lösungen
Trotz einfacher Installation treten gelegentlich Probleme auf. Die folgenden Lösungen decken jedoch die häufigsten Fälle ab.
„Der Befehl ‚gcc‘ ist entweder falsch geschrieben oder konnte nicht gefunden werden“
Diese Meldung bedeutet, dass der PATH nicht stimmt. Prüfen Sie daher folgende Punkte:
- Ist der bin-Ordner korrekt eingetragen, also zum Beispiel
C:\msys64\ucrt64\bin? - Existiert in diesem Ordner tatsächlich die Datei
gcc.exe? - Haben Sie das Terminal nach der Änderung neu gestartet?
- Wurde die Toolchain über pacman überhaupt installiert?
Häufig wurde nämlich nur MSYS2 selbst installiert, jedoch noch kein Compiler.
„pacman: command not found“ in der Eingabeaufforderung
Der Paketmanager funktioniert ausschließlich in den MSYS2-Fenstern. Öffnen Sie deshalb „MSYS2 UCRT64“ über das Startmenü.
Signaturfehler bei pacman
Meldet pacman ungültige oder unbekannte Signaturen, sind meist die Schlüssel veraltet. Führen Sie in diesem Fall nacheinander folgende Befehle aus:
pacman-key --init
pacman-key --populate msys2
pacman -Sy msys2-keyring
pacman -Syu
Anschließend sollte die Aktualisierung wieder durchlaufen.
Fehlende DLL beim Start des Programms
Erscheint eine Meldung zu „libstdc++-6.dll“, „libgcc_s_seh-1.dll“ oder „libwinpthread-1.dll“, fehlen die Laufzeitbibliotheken. Kompilieren Sie deshalb mit der Option -static:
g++ main.cpp -o main.exe -static
Alternativ kopieren Sie die genannten DLL-Dateien aus dem bin-Ordner neben Ihre EXE.
„undefined reference to WinMain“
Dieser Linkerfehler tritt auf, wenn die Funktion main fehlt oder die Datei nicht gespeichert wurde. Speichern Sie daher die Quelldatei und prüfen Sie zudem die Schreibweise.
„Permission denied“ beim Kompilieren
Meistens läuft das Programm dann noch im Hintergrund. Schließen Sie deshalb das alte Konsolenfenster oder beenden Sie den Prozess im Task-Manager. Danach klappt der Build wieder.
Antivirus blockiert die erzeugte EXE
Frisch kompilierte Programme werden gelegentlich fälschlich als verdächtig eingestuft. Fügen Sie in diesem Fall Ihren Projektordner als Ausnahme hinzu:
- Öffnen Sie „Windows-Sicherheit“.
- Wählen Sie anschließend „Viren- & Bedrohungsschutz“.
- Klicken Sie unter „Einstellungen für Viren- & Bedrohungsschutz“ auf „Einstellungen verwalten“.
- Wählen Sie danach „Ausschlüsse hinzufügen oder entfernen“.
- Fügen Sie zuletzt Ihren Projektordner hinzu.
Nehmen Sie jedoch ausschließlich Ordner mit eigenem Quellcode auf.
Umlaute werden falsch dargestellt
Die Konsole verwendet standardmäßig eine ältere Zeichenkodierung. Geben Sie deshalb vor dem Programmstart chcp 65001 ein. Dadurch schaltet die Konsole auf UTF-8 um.
Falsche GCC-Version wird verwendet
Zeigt gcc --version eine unerwartete Version, existiert vermutlich eine zweite Installation. Prüfen Sie dies mit where gcc. Oft stammen ältere Compiler beispielsweise von Strawberry Perl, Code::Blocks oder Git. Verschieben Sie in diesem Fall Ihren gewünschten Eintrag im PATH nach oben.
Windows on ARM: MinGW auf ARM-Geräten
Immer mehr Notebooks arbeiten mit ARM-Prozessoren, etwa mit Snapdragon-Chips. Auch dort lässt sich MinGW-w64 nutzen.
MSYS2 bietet dafür inzwischen einen eigenen ARM64-Installer an. Wählen Sie nach der Installation die Umgebung „MSYS2 CLANGARM64“. Dort installieren Sie die Toolchain anschließend so:
pacman -S --needed base-devel mingw-w64-clang-aarch64-toolchain
Hier kommt allerdings Clang statt GCC zum Einsatz. Der Aufruf lautet folglich clang beziehungsweise clang++. Der PATH-Eintrag heißt entsprechend C:\msys64\clangarm64\bin.
Alternativ läuft die normale x64-Version dank der Emulation von Windows 11 ebenfalls. Sie arbeitet jedoch spürbar langsamer.
Alternativen zu MinGW
MinGW-w64 ist nicht die einzige Möglichkeit, unter Windows zu kompilieren. Je nach Ziel passen andere Werkzeuge mitunter besser.
- WSL (Windows-Subsystem für Linux): Liefert ein vollständiges Linux mit GCC. Die erzeugten Programme laufen allerdings unter Linux, nicht nativ unter Windows. Die Installation gelingt mit
wsl --installin einem Administrator-Terminal. - Visual Studio Build Tools (MSVC): Der Compiler von Microsoft. Er ist insbesondere dann sinnvoll, wenn Bibliotheken nur für MSVC vorliegen.
- LLVM-MinGW: Eine Toolchain auf Basis von Clang. Sie unterstützt zudem ARM64 besonders gut.
- Cygwin: Bildet eine Unix-Umgebung nach. Programme benötigen jedoch eine zusätzliche Kompatibilitäts-DLL.
Möchten Sie hingegen native Windows-Programme mit GCC erstellen, bleibt MinGW-w64 die erste Wahl.
Tipps für den reibungslosen Betrieb
Mit einigen einfachen Gewohnheiten vermeiden Sie viele Probleme von vornherein.
- Nur eine Toolchain im PATH: Mehrere Compiler führen sonst schnell zu Verwechslungen.
- Pfade ohne Leerzeichen: Nutzen Sie daher Ordner wie
C:\projektestatt „Eigene Dateien“. - Regelmäßig aktualisieren: Führen Sie deshalb etwa einmal im Monat
pacman -Syuaus. - Warnungen ernst nehmen: Kompilieren Sie außerdem stets mit
-Wall -Wextra. - Keine veralteten Downloads: Meiden Sie insbesondere alte Installer von Drittseiten.
- Umgebungen nicht mischen: Bleiben Sie folglich konsequent bei UCRT64.
- Projekte außerhalb von C:\msys64 speichern: Dadurch bleiben Ihre Daten bei einer Neuinstallation erhalten.
Häufige Fragen zur MinGW-Installation
Ist MinGW kostenlos?
Ja, MinGW-w64, GCC, MSYS2 und WinLibs sind vollständig kostenlos und quelloffen. Zudem dürfen Sie die Werkzeuge auch beruflich einsetzen. Für Ihre eigenen Programme entstehen dadurch in der Regel keine Lizenzpflichten. Prüfen Sie jedoch bei zusätzlich eingebundenen Bibliotheken jeweils deren Lizenz.
Welche MinGW-Version ist für Windows 11/10 die richtige?
Wählen Sie MinGW-w64 in der 64-Bit-Variante mit UCRT-Laufzeit. Bei MSYS2 entspricht das der Umgebung UCRT64. Bei WinLibs nehmen Sie dagegen das Win64-Paket mit dem Zusatz „UCRT“ und „POSIX threads“. Das alte 32-Bit-MinGW von MinGW.org sollten Sie hingegen nicht mehr verwenden.
Was ist besser: MSYS2 oder WinLibs?
MSYS2 eignet sich besser für die dauerhafte Entwicklung, weil Updates und Bibliotheken per Befehl installiert werden. WinLibs ist dagegen schneller eingerichtet und außerdem portabel. Wer also nur einen Compiler für Übungen braucht, greift zu WinLibs. Für größere Projekte ist jedoch MSYS2 komfortabler.
Wie prüfe ich, ob MinGW bereits installiert ist?
Öffnen Sie die Eingabeaufforderung und geben Sie gcc --version ein. Erscheint eine Versionsnummer, ist ein Compiler vorhanden. Mit where gcc sehen Sie zusätzlich den Installationsordner. Erscheint dagegen eine Fehlermeldung, fehlt entweder die Installation oder der PATH-Eintrag.
Kann ich mit MinGW auch 32-Bit-Programme erstellen?
Ja, das ist weiterhin möglich. WinLibs bietet dafür ein eigenes Win32-Paket an. Entpacken Sie dieses einfach in einen separaten Ordner wie C:\mingw32. Tragen Sie jedoch immer nur eine der beiden Varianten in den PATH ein. Andernfalls kommt es zu Verwechslungen.
Benötige ich Administratorrechte für die Installation?
Für WinLibs benötigen Sie keine Administratorrechte, sofern Sie das Archiv in Ihren Benutzerordner entpacken. Auch der Benutzer-PATH lässt sich ohne erhöhte Rechte ändern. Der MSYS2-Installer fragt dagegen meist nach einer Bestätigung. Auf Firmenrechnern ist deshalb WinLibs oft die einfachere Lösung.
Wie viel Speicherplatz belegt MinGW?
Eine MSYS2-Installation mit kompletter Toolchain belegt etwa 2 bis 3 GB. WinLibs benötigt entpackt hingegen rund 1 GB. Mit zusätzlichen Bibliotheken wie Qt oder Boost wächst der Bedarf allerdings deutlich. Leeren Sie daher gelegentlich den Paket-Cache mit pacman -Sc.
Warum funktioniert der Befehl make nicht?
In der MinGW-Toolchain heißt das Programm mingw32-make. Verwenden Sie daher diesen Namen in der Eingabeaufforderung. Bei WinLibs liegt die Datei ebenfalls unter diesem Namen im bin-Ordner. In der UCRT64-Shell von MSYS2 steht dagegen zusätzlich make bereit, sofern base-devel installiert ist.
Ist MinGW sicher?
Ja, sofern Sie die Dateien von den offiziellen Seiten msys2.org oder winlibs.com beziehen. MSYS2 prüft Pakete zudem per Signatur. WinLibs stellt außerdem Prüfsummen bereit, mit denen Sie den Download kontrollieren können. Meiden Sie dagegen unbekannte Download-Portale.
Kann ich MinGW und Visual Studio parallel nutzen?
Ja, beide Compiler stören sich gegenseitig nicht. Visual Studio verwendet nämlich eine eigene Umgebung und greift nicht auf den PATH-Eintrag von MinGW zu. In Visual Studio Code wählen Sie außerdem pro Projekt aus, welcher Compiler arbeiten soll. Bibliotheken beider Welten sollten Sie jedoch nicht mischen.
Fazit
MinGW lässt sich unter Windows 11/10 in wenigen Minuten einrichten. Am komfortabelsten gelingt dies mit MSYS2 und der UCRT64-Toolchain. Wer es hingegen besonders schlank mag, entpackt einfach WinLibs.
Entscheidend ist anschließend der korrekte PATH-Eintrag. Prüfen Sie deshalb zum Schluss mit gcc --version, ob alles funktioniert. Danach kompilieren Sie C- und C++-Programme direkt im Terminal oder in Visual Studio Code.
