Installation MinGW (GNU C++ für Windows)

MinGW ist genaugenommen nicht nur ein Compiler, sondern ein sog. "Repository", ähnlich wie APT (apt-get) für Linux Programminstallationen oder Maven für Java-Bibliotheken, usw. Sprich "MinGW" ist das Verwaltungstool für das Repository, in welchem dann ua. GNU C++ mit enthalten ist. Das MinGW Installationsprogramm ist mit wenigen KB sehr klein. Alle restlichen Dateien werden später vom Installationsprogramm aus dem Internet geladen. Eine funktionierende Internetverbindung ist während der Installation daher Pflicht!

 

ACHTUNG bei QT:

Falls Sie QT (unter Windows) verwenden wollen, ist es sehr empfehlenswert, dass Sie die MinGW Version verwenden, die mit QT ausgeliefert wird! Die nachfolgende Beschreibung gilt nur, falls sie den MinGW Compiler als eigenständige Installation ohne QT verwenden wollen! Es gibt bei der Installation von QT zwar die Option eine originale MinGW Installation zu verwenden, dies ist aber nur für Experten zu empfehlen, da es oftmals zu Problemen führt, die nur schwer zu lokalisieren sind.

 

Installation:

Die Webseiten von GNU und MinGW sind leider nicht gerade ein Musterbeispiel an Übersichtlichkeit und bis man sich zum Downloadlink durchgeschlagen hat, kann es schon einige Zeit dauern. Daher nachfolgend nun der Link, der aktuell direkt zum Ziel führt:

=> MinGW Windows Download: http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/

Dort klickt man sich dann zur aktuellsten Compilerversion durch und holt sich die Installationsdatei (bspw. "mingw-get-inst-20101030.exe").

 

Nach dem Download starten Sie bitte die exe-Datei und erhalten anschließend folgenden Startbildschirm des Installationsprogrammes:

 

Ein paar Klicks später werden Sie gefragt, welchen Katalog Sie verwenden wollen. Eine "Standard Zusammenstellung" (pre-packaged) oder den letzten Stand. Verwenden Sie hier die Standardeinstellung .

 

Kurz darauf werden Sie aufgefordert das Zielverzeichnis anzugeben. Hier sollte nur beachtet werden, dass im Verzeichnispfad keine Leer -oder Sonderzeichen angegeben werden dürfen! Dies hat auf verschiedenen Systemen zu Problemen geführt und wird auch in der offiziellen Dokumentation zu MinGW erwähnt! Insbesonders unter Windows Vista/7 muss man hier aufpassen, da in diesen Systemen die angezeigten "virtuellen" Verzeichnisse sich von den "realen" Verzeichnissen unterscheiden können! Der angezeigte Ordner "C:\Programme" ist in Wirklichkeit der Ordner "C:\Program Files" bzw. "C:\Program Files (x86)"! Die Installation im für Windows7 typischen Programmordner "C:\Program Files (x86)" sollte man daher nicht durchführen! Verwenden Sie entweder den Standardpfad "C:\MinGW" oder erstellen Sie sich einen eigenen Ordner (ohne Leer- oder Sonderzeichen)!

 

 

Folgen Sie dort nun den Standardeinstellungen und klicken sich bis zum Punkt "Select Components" durch. Dort wählen Sie mindestens die folgende Option aus: C++ Compiler und optional das MSYS Basis System.

Das MSYS Basis System enthält eine Auswahl geläufiger UNIX Kommandozeilenprogramme (wie bspw. "cat, awk, cmp" usw.) in einer Windows-Variante. Diese werden von den "make" Skripten verwendet, mit welchen man idR. C/C++ Programme kompiliert aber diese Tools sind auch generell eine Bereicherung der MS DOS Befehle.

Die meisten MS DOS "Befehle" (Programme der Kommandozeile) stammen ursprünglich aus der UNIX-Welt. So sind in beiden Welten bspw. Kommandezeilenbefehle, wie bspw. "cd, mkdir" usw. enthalten. Viele der restlichen Befehle, die damals in den 80ern nicht von UNIX nach MSDOS portiert wurden, finden sich nun für Windows im MSYS Basis System und können auch außerhalb der C++ Entwicklung in Batchprogrammen (*.bat, *.cmd) verwendet werden. Falls Sie [MSYS\bin] in die PATH-Umgebungsvariable mit einbinden wollen, müssen Sie aber unbedingt auf die korrekte Reihenfolge achten! Einige der MSYS Befehle kollidieren mit den MSDOS Befehlen!  (bspw. "cd, cmd, cls" usw.).

Sollten Sie ev. auch in anderen Programmiersprachen entwickeln wollen, bpsw. ObjC (die übliche Sprache in Apple Mac OSX), dann wählen Sie diese hier zusätzlich aus (*2).

 

Achtung - Netbeans:

Falls Sie Netbeans als C++ Entwicklungsumgebung nützen wollen, so müssen sie das "MSYS Basis System" auswählen und mit installieren. Netbeans erfordert das Programm "make.exe" aus dem MinGW/MSYS Verzeichnis! Das MinGW Make Programm ("mingw32-make.exe") wird von Netbeans nicht akzeptiert!

 

 

Ein paar Klicks später beginnt dann der Download der Kataloge und anschließend der einzelnen Module und Tools aus dem Internet. Bis alles aus dem Netz geladen wurde kann es ein bischen dauern. (abhängig von der eigenen Internetanbindung und der aktuellen Auslastung der Server im Hintergrund)

 

Ev. erscheinen auch ein paar Fehlermeldungen beim Download. Die meisten kann man ignorieren, da in diesen Fällen die problematische Bibliothek gleich im Anschluss von einer alternativen Quelle geladen wird und dies dann idR. auch funktioniert.

Wurden alle Kataloge, Module, Tools usw. korrekt aus dem Internet geladen, erscheint der Abschlussdialog.

 

Updates / nachträgliche Installation:

Mit dem Kommandozeilentool "mingw-get" können Sie nun jederzeit Tools und Bibliotheken innerhalb von MinGW installieren oder aktualisieren. Für die Unix Freunde: "mingw-get" funzt ähnlich wie APT (apt-get install ...). Welche Module Sie im im Detail installieren / aktualisieren können, sehen Sie an den Ausgaben während des Update-Vorgangs im Konsolenfenster oder an den xml-Einträgen im Verzeichnis:

=> [MinGW]\var\lib\mingw-get\data
([MinGW] steht für das Verzeichnis, in welches Sie MinGW installiert haben)

 

Beispiel:

C:> cd [MinGW]\bin
C:> mingw-get update
C:> mingw-get install <... package names ...>
...

C:> mingw-get install g++ (das ist der GNU C++ Compiler)
C:> mingw-get install gdb (das ist der GNU C++ Debugger)
C:> mingw-get install msys-core
C:> mingw-get install msys-coreutils
C:> mingw-get install msys-console
C:> mingw-get install msys-bash

usw ...

 

Weitere Hilfen zu "mingw-get" erhalten Sie mit der Option "-h"

C:> mingw-get -h

Hinter den beiden Optionen "upgrade" und "remove" sehen Sie dann den Hinweis "[not implemented]" und in der Tat funktionieren diese beiden Optionen nicht! Führen Sie Aktualisierungen daher immer mit der Option "update/install" durch!

 

Wenn alles korrekt installiert wurde, können sie nun den GNU C++ Compiler über folgenden Befehl aufrufen und testen

C:> cd [MinGW]\bin
C:> g++ --version

Sie erhalten dann in etwa folgende Ausgabe ...

Gratulation! MinGW bzw. der GNU C++ Compiler wurde nun auf Ihrem Windows-System installiert.^^

 

PATH - Umgebungsvariable:

Sofern Sie den GNU C++ Compiler oder die MSYS Befehle in ihre PATH Umgebungsvariable einbinden wollen (systemweit oder in einem Script), so sind die nachfolgenden genannten 2 Verzeichnisse von Interesse:

  • [MinGW]\bin
  • [MinGW]\msys\1.0\bin

Wie aber bereits erwähnt, kollidieren die Programme / Befehle in diesen Verzeichnissen teilweise mit den aus dem MSDOS System, welches auch in Windows Vista /7 nachwievor installiert wird. Daher ist es von entscheidender Bedeutung, dass sie die richtige Reihenfolge bei der Konfiguration der PATH-Umgebungsvariablen beachten! Und hier gilt die Regel "von links nach rechts"! Die Windows-Verzeichnisse sollten daher in der PATH-Variable immer (links) vor den MinGW/MSYS-Einträgen stehen!

Beispiel:

SET PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\dev\cpp\Products\MinGW\bin;D:\dev\cpp\Products\MinGW\msys\1.0\bin

 

Links:

 

Fußnoten:

  • (*1): GNU C++ ist auch der Standardkompiler in Apples MAC OSX, weil dieses System auf BSD Unix basiert. Nur wird in OSX zumeist in Objective C, einer Abwandlung von C++, entwickelt. Der Compiler ist in beiden Fällen aber der Selbe.
  • (*2): Der GNU Java Compiler (Gnu GCJ) wurde mittlerweile aus dem GNU Installer entfernt, was aber nicht verwundert, weil dieser Compiler offenbar nicht weiter entwickelt wird und schlicht grottenschlecht war (siehe hierzu auch den Artikel "Vergleich der Sprachen - Fazit")