jkrieger.de/ C++-Entwicklung/ GNU Bibliotheken für MinGW (win32) compilieren

GNU Bibliotheken für MinGW (win32)

Fertig compilierte GNU Bibliotheken für MinGW

Ich habe (im Prinzip nach der unten gegebenen Anleitung) einige Bibliotheken schon fertig compiliert und stelle sie hier als ZIP-Archive zum Download bereit. Die Archive müssen nur noch in das MinGW-Verzeichnis entpackt werden.

GNU Bibliotheken für win32 compilieren

Das folgende Tutorial erklärt, wie man diverse GNU-Bibliotheken unter MinGW compilieren und nutzen kann. Die Anweisungen sind sehr allgemein und sollten bei allen Bibliotheken funktionieren, die sich mit dem Linux-typischen compilieren lassen. Ich habe diese Methode z.B. bei folgenden Bibliotheken angewendet:
zlib, libpng, pixman, cairo, cairomm,
GSL - GNU Scientific Library, fftw - Fastest Fourier Transform in the West
Nun aber die Schritt-für-Schritt-Anleitung:
  1. Zum compilieren verwende ich ein "frisches" MinGW-System mit folgenden Paketen, möglichst in aktueller Version (die in Klammern angegebenen Versionen sind die momentan von mir benutzten):
    mingw-runtime (v 3.14), binutils (v 2.17.50),
    gcc-g++ (v 3.4.5), gcc-core (v 3.4.5),
    w32api (v 3.11), MSYS (v 1.0.10)
    Alle Pakete außer MSYS liegen auf http://www.mingw.org/ (genauer im SourceForge-Bereich) als ZIP Archiv bereit. Diese können einfach in ein Verzeichnis (z.B. c:\mingw\) entpackt werden. Nach dem entpacken aller Archive startet man den MSYS Installer. Nach dem Durchlaufen des Installers wird man auf der KOnsole aufgefordert den Pfad zu MinGW anzugeben. Dort gibt man dann c:/mingw (oder entsprechendes) an. Nun steht ein frisches, durch Bibliotheken unbelastetes System zur Verfügung.
  2. Für manche Bibliotheken (z.B. cairo) benötigt man das Tool pkg-config. Es unterhält eine "Datenbank" aller installierter Bibliotheken und gibt Linker- und Compile-Flags zu einer Bibliothek aus. Es kann auch Abhängigkeiten berücksichtigen. Das Programm selbst zu compilieren ist leider nicht so einfach, da es auf der Bibliothek glib basiert, die wiederum zum compilieren pkg-config braucht (zumindest hab ich's nicht geschafft ;-). Das Programm kann aber als Binary von http://www.gtk.org/download-windows.html heruntergeladen werden (Achtung, man benötigt ebenfalls die Datei libglib-2.0-0.dll aus dem glib-Paket. Beide kopiert man in das bin-Verzeichnis der MinGW-Installation. Ich habe Beides in einem ZIP-Archiv zum download bereitgestellt, das nur noch entpackt werden muss.
  3. Nun zur Installationsanleitung selbst. Die Bibliotheken werden alle mit dem Linux-Standard-Verfahren compiliert.
    1. Dazu entpackt man zunächst das Source-Archiv (also die Quelltexte) in ein neues Verzeichnis.
    2. Nun startet man MSYS und wechselt in das entsprechende Verzeichnis.
    3. Das Kommand configure erzeugt die Makefiles für die Bibliothek und berücksichtigt dabei die Konfiguration des aktuellen Systems. Oft kann man hier auch noch diverse Einstellungen vornehmen (z.B. spezielle Optimierungen oder die Auswahl einiger Teilsysteme). Die Option --prefix=/c/mingw setzt den Installationspfad auf das angegebene Verzeichnis (hier von MinGW). Dies kann für die folgenden Schritte nützlich sein, weil dann ein make install alle wichtigen Dateien automatisch in die MinGW-Installation kopiert.
    4. Nachdem configure erfolgreich beendet wurde kann man mit einem AUfruf von make und danach make install die Bibliothek compilieren und installieren.
printable version of: http://www.jkrieger.de/programming/cpp/gnulibs.html
last updated: 04.07.2010
Contents/Design: © 2000-2010 by Jan Krieger