MinGW, das "Minimal GNU for Windows", ist ein Projekt, dass die "GNU Compiler Collection" (GCC) für Windows verfügbar macht [1]. Die GCC ist eine Open Source-Alternative für die Anwendungsentwicklung von C, C++, Fortran, Ada und Objective-C. MinGW besteht nicht nur aus einer Kompilernsammlung. Es umfasst Tools zur Analyse und Entwicklungsbibliotheken, darunter die für die Windows-Programmierung lebensnotwendige Win-API. MinGW ist modular. Es gibt einen Kern, der vorhanden sein muss, und diverse Zusatzkomponenten. In der Standardversion unterstützt MinGW nur C und benötigt 90 MB Speicherplatz. Die Zusatzmodule für C++, Fortran, Objective-C oder Ada beanspruchen unterschiedlich viel Speicher. Eine Komplettinstallation mit allen Optionen (für Programmieranfänger selbstredend ungeeignet) belegt über 400 MB.
Anders als bei Eclipse CDT [5], Code::Blocks [6] oder MS Visual Studio Express 2008 [7] handelt es sich bei MinGW NICHT um eine vollwertige Entwicklungsumgebung, sondern um eine Sammlung von Tools und Bibliothekenn. Nicht mal ein Text-Editor ist dabei, mit dem man den Code schreiben kann. MinGW ist praktisch ein Sack voller Werkzeuge. Wir dürfen (oder müssen, je nach Sichtweise) die Werkbank selbst einrichten.
Der MinGW-C-Kompiler wird grundsätzlich über die Konsolen-Eingabeaufforderung gesteuert. Die Programme, die wir damit erstellen, werden ebenfalls über die Konsole laufen. Das ist natürlich etwas anderes als die Programmierung einer Anwendung mit komplexen Fenstern, Grafiken, Maussteuerung oder Soundausgabe. Aber so etwas ist für Programmier-Novizen nicht geeignet. Für simple Programmbeispiele, die Grundlagen der Datenein- und ausgabe, der Verarbeitung von Datenstrukturen, die Grundzüge automatisierter Softwareentwicklung und Objektorientierter Programmierung (C++) demonstrieren, ist kein Multimedia-Feuerwerk notwendig.
Obwohl MinGW für Windows gemacht wurde, beinhaltet es keine windowsspezifische Dokumentation der enthaltenen Bibliotheken - nicht für die ANSI-C99-Standardbibliothek, die GNU-C-Bibliotheken und auch nicht für die Win-API. Für den unkomplizierten Einstieg sollte man sich wenigstens eine Übersicht über die ANSI-C99 Standardbibliothek suchen, wie z.B. die von Axel Stutz und Peter Klingebiel an der FH Fulda erstellte Liste [2]. Da MinGW auf der GCC aufbaut, enthält es eine Reihe von Erweiterungen, die über die Standardbibliothek hinausgehen. Über diese, teilweise recht umfangreichen Zusätze, kann man sich auf der Website der GNU-C-Library informieren [3]. Für die 32bit-Version der Win-API kann man an verschiedenen Stellen im Internet eine Windows-Hilfedatei auftreiben. Das ist auf den ersten Blick besser als Nichts, aber nur auf den ersten Blick. Diese Hilfedateien sind 10-15 Jahre alt und beinhalten eine Referenz ohne Erklärungen. Die umfangreichste und aktuellste Informationsquelle bleiben die Online-Libraries des Microsoft Developer Networks, vorzugsweise in der englischen Version [4].
Hinweis: Wer bereits unter Linux programmiert hat, kann sich zusätzlich MSYS installieren, das nach dem Start einige linuxspezifische Komandozeilenprogramme ausführen kann, darunter "man" für die Manpages. Für die Win32-API-Dokumentation gilt das natürlich nicht.
Wer über einen Internetanschluss verfügt, kann sich eine simple C/C++-Entwicklungsumgebung einrichten. Da MinGW standardmäßig nur C unterstützt, wählen wir zusätzlich die C++-Sprachunterstützung aus. Die Installation der MinGW-Komponenten läuft über ein kleines System-Installations-Tool, das man separat herunterladen muss. Die eigentliche Installation läuft komplett Online. Falls sich die Installation beim Herunterladen "aufhängt", starten wir den Installer einfach noch mal.
Hinweis: Seit September 2010 gibt es einen neuen Installer, da das MinGW intern umgebaut wurde. Der aktuelle Platzbedarf der Installation wird jetzt nicht mehr angezeigt. Außerdem scheint es keine Möglichkeit zu geben, nachträglich die Unterstützung für weitere Programmiersprachen zu integrieren, d.h. wer im Nachhinein doch Fortran oder Ada kompilieren möchte, muss MinGW NEU installieren. Es wird allerdings kein Java mehr unterstützt, dafür kann man nun MSYS als "Linux-in-a-nutshell" direkt über den Installer auswählen. Positiv: der C-GNU-Debugger für die Fehlersuche wird jetzt automatisch installiert. Bei Sourceforge gibt es alle Versionen der letzten 4-5 Jahre zum herunterladen. Ich werde neben der gegenwärtigen alternativ die alte Offline-Installation beschreiben.
Zuerst besorgen wir uns das System-Installations-Tool für MinGW:
Jetzt starten wir das Installationstool auf dem heimischen PC. Nachdem man im "Welcome to the MinGW-Get Setup Wizard"-Bildschirm unten "Next" angeklickt hat wird man, falls man mit einem Administratoren-Konto angemeldet ist, darauf hingewiesen, dass MinGW-Einträge im Startmenü für alle Nutzer installiert werden. Falls man das nicht möchte, muss man sich erst mit einem eingeschränktem Konto anmelden und dann den Installer noch einmal starten. Weiter geht es:
Nach der Installation findet man im Ordner "MinGW\var\cache\mingw-get\packages" alle Pakete, die für die Installation heruntergeladen wurden. Man kann diese Pakete (es handelt sich um Linux-Archivdateien) mit einem passenden Entpacker-Tool wie 7zip entpacken und später anderswo lokal und offline installieren, in dem man sie schlichtweg an Ort und Stelle auspackt. Die Anzahl der Pakete variiert logischerweise mit der Anzahl der Zusatzkomponenten. Für C/C++ sind es 19 Pakete, ohne C++-Unterstützung, also in der absoluten Minimalversion, 17 Pakete.
Mit den Archiv-Dateien kann man MinGW auch ohne Internetanschluss installieren. Wir brauchen lediglich die Dateien, die das System-Installer-Tool von sourceforge.net [9] heruntergeladen hat, mit einem passenden Programm (z.B. 7zip) entpacken. Wenn wir keinen Zugriff auf die Pakete einer bestehenden, lokalen Installation haben, wird es allerdings kompliziert. Das Schwierigste ist das Finden der notwendigen Dateien. Zum einen ist das Online-Verzeichnis von MinGW bei sourceforge.net ziemlich umfangreich. Auf der anderen Seite wurde MinGW im Sommer 2010 intern umgebaut, so dass einige Tools nun bestimmte dll-Bibliotheken zwingend benötigen. Dummerweise kann man diese Laufzeitbibliotheken nicht für alle Komponenten direkt herunterladen. Alternativ kann man aber eine ältere MinGW-Version herunterladen und entpacken. Bei sourceforge.net gibt es Versionen, die bis zu 10 Jahre alt sind und sich noch problemlos ohne zusätzliche Laufzeitbibliotheken betreiben lassen. Dabei heißt es aufpassen, denn die Versionen der einzelnen Module sind aufeinander abgestimmt. d.h. man kann sie nicht wahllos kombinieren. Problematisch kann es natürlich werden, wenn man die alten Versionen auf der neuesten Windows-Version braucht. Auf Windows XP funktioniert die unten beschriebene Version aber ohne Probleme. Am besten lädt man Pakete herunter, die in etwa aus dem gleichen Zeitraum stammen. Unter "Files/MinGW/Base System" müssen wir die folgenden Dateien finden:
Die so installierte Version benötigt etwa 100MB Speicherplatz. Davon können wir noch einiges einsparen, etwa bei den Binutils. Die Ordner "bin", "include", "lib" und "libexec" brauchen wir mindestens. Man sollte dort nur herumexperimentieren, wenn man wirklich weiß, was man tut und eine Sicherungskopie hat. Aktuellere Versionen lassen sich auf diese Weise nicht nutzen, da beim Starten verschiedene Laufzeitbibliotheken vermisst werden. Es erscheinen dann Fehlermeldungen a la: "libexpat-1.dll konnte nicht gefunden werden. Neuinstallation der Anwendung könnte das Problem beheben". Nur hilft uns in diesem Fall keine Neuinstallation, wir müssen ein anderes, ältereres Paket wählen.
Nachdem wir MinGW installiert haben, könnten wir uns ein klassisches "Hello-World!" Anfängerprogramm schnappen und loslegen - wenn wir etwas zum Schreiben hätten. Nun benötigen wir einen Editor, mit dem wir die Sourcecodes eintippen können. Und nein: MS Word ist KEIN Texteditor. Ein Texteditor wie Notepad++ portable [10] ist dagegen ein guter Kompromiss zwischen einfacher Handhabung und grundlegender Unterstützung für Programmier-Novizen. Ein "bisschen Unterstützung" heißt, dass Notepad++ die Schlüsselwörter einer Programmiersprache farblich markiert. Dieses sogenannte "Syntax-Highlighting" erleichtert die optische Orientierung im Code. Leider funktioniert das erst, nachdem die Datei unter der entsprechenden Dateiendung abgespeichert wurde - sonst weiß Notepad++ nicht, welches Sprachschema es anwenden soll. Wir müssen also erst eine Datei unter "hello_world.c" für reines C oder "helloworld.cpp" für C++ abspeichern, um in den Genuss des Syntax-Highlighting zu kommen. Notepad++ unterstützt standardmäßig mehr als 40 Sprachen (u.A. Java, C#, JavaScript, VB, Pascal, PHP, Makefiles und Ressourcen-Dateien).
// Testprogramm als "helloWorld.c" abspeichern
// gibt Zeichenkette "Hello World!" auf Konsole aus
#include <stdio.h>
int main()
{
// printf() ist eine Standard-C-Funktion für die Datenausgabe
printf("Hello World!");
// wenn die Ausgabe okay war, gibt main den Wert 0 an die Konsole zurück
return(0);
}
Allein das Schreiben dieser Anweisungen und das Abspeichern als C-Datei ergibt noch keine Anwendung - nicht einmal eine Konsolenanwendung. Jetzt müssen diese Anweisungen für den Windows-Computer "übersetzt", also kompiliert, werden. Mit dem Sourcecode allein kann der Computer nichts anfangen. Erst durch den Kompilationsprozess, der über verschiedenen Stufen läuft, wird am Ende eine ausführbare "exe"-Datei entstehen.
Jetzt kommt MinGW zum Zuge. Wir müssen der Anwendung "gcc.exe" im bin-Ordner der MinGW-Installation mitteilen, dass sie aus der Beispieldatei "helloWorld.c" eine Windows-Konsolen-Anwendung machen soll. Dazu muss bekannt sein, wo die Beispieldatei ist und wie die gcc-Anwendung gestartet wird. Außerdem nehmen wir der Einfachheit halber an, dass wir das Verzeichnis "MinGW\bin", in dem sich die "gcc.exe" befindet, im Windows-System-Pfad angemeldet haben, damit wir "gcc.exe" überall in allen Verzeichnissen ohne explizite Pfadangabe aufrufen können.
Die Kompilation über die Windows-Konsole läuft folgendermaßen ab:
[1] Wikipedia-Artikel (dt./en.): http://de.wikipedia.org/wiki/Mingw bzw. http://en.wikipedia.org/wiki/Mingw
[2] Übersicht C-Standardbibliothek : http://www2.fh-fulda.de/~klingebiel/c-stdlib/index.htm
[3] Download GNU-C-Library Handbuch: http://www.gnu.org/software/libc/manual/
[4] Übersicht Win-API: http://msdn.microsoft.com/en-us/library/cc433218%28VS.85%29.aspx
[5] Download Eclipse CDT: http://www.eclipse.org/cdt/downloads.php
[6] Download Code::Blocks (ohne MinGW): http://www.codeblocks.org/downloads/binaries
[7] Download Visual C++ Express: http://www.microsoft.com/germany/Express/download/webdownload.aspx
[8] Download MinGW-System-Installer bei sourceforge.net: http://sourceforge.net/projects/mingw/
[9] MinGW-Komponenten bei sourceforge.net: http://sourceforge.net/projects/mingw/files/
[10] Download Notepad++: http://portableapps.com/apps/development/notepadpp_portable
Veröffentlicht auf BITSRC.info unter URL http://bitsrc.info/tools_mingw.php (Letzte Änderung: 23-12-2010, 23:43:08.)
Module | Development | Tools | Impressum |
---|---|---|---|
Modulpläne alte Materialien |
JavaScript |
Firefox und Extensions MinGW - Minimal GNU for Windows Serverumgebungen |
Impressum Haftungsausschluss |
2007-2025 Uwe Hartwig (Ausgabe in
0,0001 sec erzeugt)