Die Boost-Bibliotheken stehen als Quellcode zur Verfügung. Während die meisten dieser Bibliotheken ausschließlich aus Headerdateien bestehen, die direkt verwendet und in Projekten eingebunden werden können, müssen einige Bibliotheken kompiliert werden. Um die Installation der Boost-Bibliotheken für Entwickler so einfach wie möglich zu gestalten, steht mit Boost.Build ein Werkzeug für einen automatisierten Installationsprozess zur Verfügung. Anstatt Bibliotheken einzeln zu überprüfen und dann gegebenenfalls zu kompilieren, kann mit Boost.Build das Gesamtpaket automatisch installiert werden. Dabei werden von Haus aus zahlreiche Betriebssysteme und Compiler unterstützt, so dass Sie keine langwierigen Einstellungen in Konfigurationsdateien vornehmen müssen.
Um mit Hilfe von Boost.Build die Boost-Bibliotheken automatisch zu installieren, wird auf ein Programm namens bjam zugegriffen. Dieses Programm wird seinerseits in Form von Quellcode zur Verfügung gestellt und muss daher erst kompiliert werden. Das ist der Grund, warum der Installationsprozess aus zwei Schritten besteht. Wechseln Sie in Ihr Boost-Verzeichnis, nachdem Sie die Boost-Bibliotheken heruntergeladen und entpackt haben, und geben Sie folgende zwei Befehle nacheinander auf der Kommandozeile ein:
Geben Sie unter Windows bootstrap
und unter anderen Betriebssystemen wie Linux ./bootstrap.sh
ein, um bjam zu kompilieren. Es wird automatisch ein auf Ihrem System installierter C-Compiler gesucht, um bjam zu erstellen.
Geben Sie anschließend unter Windows bjam
und unter anderen Betriebssystemen wie Linux ./bjam
ein, um die Installation zu starten.
bootstrap verwenden Sie nur ein einziges Mal, um das Programm bjam zu erstellen. Auf bjam greifen Sie unter Umständen öfter zu. So können Sie zahlreiche Kommandozeilenparameter angeben, um bjam mitzuteilen, wie die Boost-Bibliotheken installiert werden sollen. Wenn Sie bjam ohne Kommandozeilenparameter starten, werden Standardeinstellungen verwendet, die nicht immer empfehlenswert sind. Daher sollten Sie die wichtigsten Optionen von bjam kennen:
Mit der Angabe von stage
oder install
wählen Sie aus, ob die Boost-Bibliotheken in ein Unterverzeichnis stage
oder systemweit installiert werden sollen. Was systemweit bedeutet, hängt vom Betriebssystem ab. Unter Windows ist das Zielverzeichnis C:\Boost
, unter Linux /usr/local
. Sie können das Zielverzeichnis bei Angabe von install
über die Option --prefix
explizit einstellen. Ein Aufruf von bjam ohne Kommandozeilenparameter bedeutet automatisch stage
.
Wenn Sie bjam ohne Angabe von Kommandozeilenparametern aufrufen, wird automatisch nach einem Compiler gesucht. Sie können einen Compiler auswählen, indem Sie ein Toolset über die Option --toolset
angeben. So können Sie unter Windows Visual C++ 2013 auswählen, indem Sie bjam mit --toolset=msvc-12.0
aufrufen. Unter Linux wählen Sie GCC mit --toolset=gcc
aus.
Über den Kommandozeilenparameter --build-type
wird angegeben, welche Versionen der Bibliotheken erstellt werden sollen. Standardmäßig ist dieser Kommandozeilenparameter auf minimal
gesetzt, was bedeutet, dass lediglich Release-Versionen erstellt werden. Das kann vor allem ein Problem für Entwickler werden, die Debug-Versionen ihrer Projekte mit Visual C++ oder GCC erstellen wollen. Da diese Compiler automatisch versuchen, gegen Debug-Versionen der Boost-Bibliotheken zu linken, werden sie nicht fündig und brechen das Linken mit einer Fehlermeldung ab. Deswegen kann es empfehlenswert sein, die Option --build-type
explizit auf complete
zu setzen, um Debug- und Release-Versionen der Boost-Bibliotheken zu erstellen. Die Installation kann in diesem Fall sehr lange dauern, was der Grund ist, warum standardmäßig minimal
gesetzt ist.
Boost-Bibliotheken, die kompiliert werden, werden unter Windows in Dateien zur Verfügung gestellt, deren Namen Versionsnummern und verschiedene Kürzel beinhalten. Diese lassen erkennen, ob eine Bibliothek zum Beispiel als Debug- oder Release-Variante vorliegt. libboost_atomic-vc120-mt-gd-1_57
ist so ein Dateiname. Er deutet daraufhin, dass diese Bibliothek mit Visual C++ 2013 erstellt wurde, aus den Boost-Bibliotheken 1.57.0 stammt und als Debug-Variante vorliegt, die in Multithreaded-Anwendungen verwendet werden kann. Über den Kommandozeilenparameter --layout
können Sie bjam anweisen, andere Dateinamen zu erstellen. Wenn Sie ihn zum Beispiel auf system
setzen, heißt die entsprechende Datei libboost_atomic
. Unter Linux ist system
die Voreinstellung. Möchten Sie unter Linux Dateinamen erhalten, wie sie standardmäßig unter Windows erstellt werden, setzen Sie --layout
auf versioned
.
Nachdem Sie die wichtigsten Optionen kennengelernt haben, können Sie, wenn Sie mit Visual C++ 2013 arbeiten, Debug- und Release-Versionen der Boost-Bibliotheken mit folgendem Befehl erstellen und in einem Verzeichnis D:\Boost
installieren:
bjam --toolset=msvc-12.0 --build-type=complete --prefix=D:\Boost install
Wenn Sie Linux einsetzen und mit GCC arbeiten, verwenden Sie folgenden Befehl, um die Boost-Bibliotheken im standardmäßig vorgesehenen Systemverzeichnis zu installieren:
bjam --toolset=gcc --build-type=complete install
Es existieren zahlreiche weitere Kommandozeilenparameter, mit denen gezielt angegeben werden kann, wie die Boost-Bibliotheken zu kompilieren sind. Sehen Sie sich zum Beispiel folgenden Befehl an:
bjam --toolset=msvc-12.0 debug release link=static runtime-link=shared install
Die Angaben debug
und release
bewirken, dass sowohl Debug- als auch Release-Versionen der Bibliotheken erstellt werden. Die Angabe link=static
bedeutet, dass ausschließlich statische Bibliotheken erstellt werden. Mit runtime-link=shared
wiederum wird angegeben, dass die C++-Runtime-Bibliothek dynamisch gelinkt wird, was in Visual C++ 2013 die Standardeinstellung für C++-Anwendungen ist.