Logo jkrieger.de section logo
invisible corner_top_left.gif
divider design elem. Home design elem.   design elem. Software design elem.   design elem. Links design elem.   design elem. Science design elem.   design elem. Photographie design elem.   design elem. everythingelse design elem.   design elem. eMail design elem.
divider_end corner_top_right
Verlauf

Boost für MinGW (win32) compilieren

Im folgenden möchte ich kurz die Schritte notieren, die zum compilieren der Bibliothek Boost unter MinGW nötig waren. Das Tutorial bezieht sich auf die (zur Zeitder Erstellung) aktuellste Version 1.37.0. Das fertige Binärpaket kann unter folgendem Link heruntergeladen und einfach über eine existierende MinGW-Installation entpackt werden.

  1. boost v1.37.0
  2. boost v1.35.0

Zusätzlich zu MinGW wird auch das Toolkit MSys (siehe http://www.mingw.org/wiki/msys) benötigt. Es stellt eine minimale Unix-Umgebung bereit, in der man z.B. configure-Skripte ausführen kann.

Man beachte, dass Boost hauptsächlich aus Headern mit inline-Funktionen besteht, sodass nur wenig Compilier-Aufwand entsteht. Der großteil des Codes wird direkt aus den header-Files eingebunden.

  1. Zunächst muss man die Boost-Bibliothek von http://www.boost.org/users/download/ herunterladen. Das Source-Code Archiv entpackt man in einen beliebigen Ordner (bei mir C:\Development\libs\Boost_1.37.0\).
  2. Nun braucht man das Build-Tool bjam, dass sich unter der selben Adresse, wie in 1. findet. Laden Sie die ...-ntx86.zip Version herunter. Dabei handelt es sich um die win32 binaries. Den Inhalt dieses Archis entpackt man ebenfalls in das boost-Verzeichnis. Es sollte sich nur um einige wenige Dateien (vor Allem bjam.exe) handeln.
  3. Erzeugen Sie im Boost-Verzeichnis ein unterverzeichnis .\distrb\. Dort soll boost hininstalliert werden, sodass man später einfach alles in diesem Verzeichnis nach MinGW kopieren kann.
  4. öffnen Sie die Datei .\tools\build\v2\user-config.jam. Dort fügen Sie (optional) die Zeile
    using mpi ;
    um die Unterstützung für MPI (Message Passing Interface) zu aktivieren.
  5. Nun startet man die MSys Konsole und wechselt mit cd ins Boost Verzeichnis. Dort wird zunächst folgender Befehl ausgeführt:
    bjam --prefix=e:/development/libs/boost-1.37.0/distrib --toolset=gcc --layout=system --without-mpi --without-python --variant=release --link=dynamic --runtime-link=static stage
    Die Optione --prefix legt das Installationsverzeichnis fest. --layout=system verhindert, dass bjam den Namen des Compilers und die Boost-Version in die Dateinamen der Binaries aufnimmt. --toolset=gcc teilt mit, dass man mit dem GCC Compiler überstzen möchte. Ansonsten wird bjam aufgefordert Bibliotheken zu erzeugen, die die STL statisch hinzulinken und dynamisch zum Programm gelinkt werden. Die Pakete Python und MPI werden ausgeschlossen (die entsprechenden optionen können auch weggelassen werden!). Die Ergebnisse landen im Unterverzeichnis .\stage\ des Boost-Verzeichnisses.
  6. Ein Abschließender Aufruf von:
    bjam --prefix=e:/development/libs/boost-1.37.0/distrib --toolset=gcc --layout=system --without-mpi --without-python --variant=release --link=dynamic --runtime-link=static install
    kopiert alle wichtigen Datein in das .\distrib\ Verzeichnis, aus dem sie dann nach MinGW kopiert werden können.
 printable version Impressum
corner_top_right2
verlauf_right.gif
corner_bottom_left.gif corner_bottom_left2 Copyright (c) J. Krieger corner_bottom_right.gif
invisible
last updated: 02.12.2008
file: http://www.jkrieger.de/programming/cpp/boost.html
invisible