GCC: Prekompilierte Header erstellen
-
Hallo
Ich habe in meinem Projekt viele Header-Dateien inkludiert, teilweise auch von externen Bibliotheken.
das sieht so aus:Header 1:
#include <vector> //... #include "header2.h" class foo { };
#include <boost/array.hpp> class bar { };
Code1:
#include "header1.h" #include "header2.h" #include <list> //code
Code2:
#include "header1.h" #include "header2.h" #include <map> //code
Leider dauert das ganze kompilieren elendig lange. Daher habe ich mir gedacht, dass ich prekompilierte Headerdateien verwenden sollte. Dabei habe ich mir gedacht, dass ich nicht alle Headerdateien in eine main.h einbinde und diese dann prekompiliere, um die Abhängigkeiten zwischen den einzelnen Dateien möglichst gering zu halten.
Wie kriege ich es nun hin, dass gcc neben den Headern in meinen Build-Directory (ich übergebe einfach neben *.cpp auch *.hpp der Kommandozeile) auch die Headerdateien prekompiliert, die ich in meinen Code-Dateien eingebunden habe. In dem Beispiel oben wären das konkret <list> und <map>.
Ansonsten - gibt es eine Möglichkeit, Codedateien nur bei Ändernungen an sich selbst oder an ihren Dependencies (Includes) kompilieren zu lassen. So eine art "minimal rebuild" wie bei Visual Studio?
Danke