2009-04-27 12 views
3

Ich kann Tonnen von Allzweck-Dokumentation auf Boost.Build finden, aber überraschend nichts, wie man es verwendet, um einfache Boost-Anwendungen zu bauen.Einfache Boost-Anwendungen mit Bjam erstellen

Ich kompiliert Boost für Mingw mit bjam, hat alle Bibliotheken und enthält in C: \ Boost. Wie sieht nun eine grundlegende Jamroot-Datei aus?

Die libs haben alle komplizierte Namen wie 'libboost_filesystem-mgw34-mt-s.lib', ich bin mir sicher, es gibt irgendwo einen magischen Schalter, der einfach 'link libboost_filesystem' sagt!

Antwort

6

Natürlich gibt es Abkürzungen sind! Ein Beispiel Projekt könnte wie folgt aussehen:

#jamfile - an example Boost.Build project 
exe my_exe : [ glob *.cpp ] /boost//filesystem ; 

eine ausführbare Datei aus allen CPP-Dateien im Projektverzeichnis zu machen und mit Boost.Filesystem. Dann müssen Sie keine der Boost-Bibliotheken manuell erstellen, bjam wird sich selbst um diese kümmern. Dadurch wird sichergestellt, dass Ihre App immer mit den Boost-Bibliotheken verknüpft ist, die mit den richtigen Optionen kompiliert wurden. Es gibt einige anfängliche Konfigurationsanstrengungen, die unternommen werden müssen, um eine Umgebung für die Verwendung von Boost.Build vorzubereiten, wie zum Beispiel das Erstellen eines user-config.jam, eines boost-build.jam und eines jamroot zur Vereinfachung (mit z. B. use-project /boost : /path/to/boost Anweisung). Aber das ist eine einmalige Anstrengung und danach sind die Dinge viel einfacher als vorher.

0

Es ist in keiner Weise notwendig, bjam zu verwenden, um Code zu erstellen, der mit Boost funktioniert.

Verwenden Sie also Gmake oder Batch-Skripte oder eine IDE oder was auch immer Sie mögen. bjam ist eine der schwierigeren Möglichkeiten, denn wie du gefunden hast, ist die Dokumentation schlecht.

Es ist ein sehr einfaches Tutorial:

http://www.boost.org/doc/libs/1_39_0/more/getting_started/unix-variants.html

oder

http://www.boost.org/doc/libs/1_39_0/more/getting_started/windows.html

+1

Ja, ich habe ein Makefile benutzt. –