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.