Boost ist eine sehr große Bibliothek mit vielen Abhängigkeiten - die auch eine lange Zeit zum Kompilieren benötigt (was für mich eine Verlangsamung unserer CruiseControl Reaktionszeit).
Boost :: Regex und boost :: format sind die einzigen Boost-Komponenten, die ich verwende.
Gibt es eine einfache Möglichkeit, nur die Teile der Boost-Funktion zu extrahieren, die für eine bestimmte Boost-Unterbibliothek erforderlich sind, um Compilations schneller zu machen?
EDIT: Um die Frage zu beantworten, warum wir Boost neu aufbauen wollen ...
Als Erstes können Sie das bcp-Tool (im Unterordner tools) verwenden, um die von Ihnen verwendeten Header und Dateien zu extrahieren. Dies wird jedoch nicht mit Kompilierungszeiten helfen. Zweitens müssen Sie Boost nicht jedes Mal neu aufbauen. Erstellen Sie einfach die lib-Dateien einmal und bei jeder Versionsänderung und kopieren Sie den "stage" -Ordner zur Build-Zeit.
Sofern Sie nicht selbst die Boost-Bibliotheken patchen, gibt es keinen Grund, sie jedes Mal neu zu kompilieren, wenn Sie einen Build erstellen.
Vorkompilierte Header sind das Wort des Tages! Fügen Sie die Boost-Header hinzu, die Sie in Ihrem vorkompilierten Header benötigen - Tada!
Wir verwenden Boost, aber wir fügen nur Objektdateien für die Typen ein, die wir tatsächlich verwenden. Das heißt, wir bauen unsere eigene statische Bibliothek mit einer Reihe selbstgewonnener Dienstprogramme und schließen diejenigen Teile von Boost ein, die wir nützlich finden. Unser CMakeLists.txt
sieht ungefähr so aus (Sie sollten es in CMake laden können, wenn Sie SOURCES entsprechend anpassen.)
Tags und Links dependencies c++ boost