Ich versuche, Boost-Header vorzukompilieren.
Erstes Experiment - mit std:: Kopfzeilen. Ich erstelle die Datei std.hpp:
#include <vector>
#include <iostream>
// And other std:: headers
Und dann:
g++ std.hpp
std.hpp.gch in /usr/include/c++/4.4.5 kopieren
Und schreiben Sie ein Testprogramm:
#include <std.hpp>
int main() {
std::cout << "Hello, precompiled world!" << std::endl;
return 0;
}
Funktioniert gut.
Versuchen Sie nun, Boost-Header vorzukompilieren.
Ich erstelle die Datei boost.hpp:
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/karma.hpp>
Und dann:
g++ boost.hpp
boost.hpp.gch in /usr/local/include/boost kopieren
Und schreiben Sie ein Testprogramm:
#include <boost/boost.hpp>
int main() {
// Some code...
return 0;
}
Aber ich bekomme einen Fehler:
main.cpp:2:33: error: /usr/local/include/boost/boost.hpp: No such file or directory.
Probieren Sie es aus:
#include </usr/local/include/boost/boost.hpp>
int main() {
// Some code...
return 0;
}
Derselbe Fehler.
Versuchen Sie, boost.hpp.gch an eine andere Stelle zu kopieren - gleicher Fehler.
Wenn ich die Datei boost.hpp an der gleichen Stelle - funktioniert gut (so gibt es keine Probleme mit Pfad):
ls /usr/local/include/boost | grep boost
boost.hpp
boost.hpp.gch
So Compiler verwenden boost.hpp Header. Aber warum Compiler nicht sehen, vorkompilierte boost.hpp.gch?