Я пытаюсь прекомпилировать заголовки Boost.
Первый эксперимент - с заголовками std :: headers. Я создаю файл std.hpp:
#include <vector>
#include <iostream>
// And other std:: headers
После этого:
g++ std.hpp
Скопируйте std.hpp.gch в /usr/include/c++/4.4.5
.
И написать тестовую программу:
#include <std.hpp>
int main() {
std::cout << "Hello, precompiled world!" << std::endl;
return 0;
}
Работает нормально.
Теперь попробуйте прекомпилировать заголовки Boost.
Я создаю файл boost.hpp:
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/karma.hpp>
После этого:
g++ boost.hpp
Скопируйте boost.hpp.gch в / usr / local / include / boost
И написать тестовую программу:
#include <boost/boost.hpp>
int main() {
// Some code...
return 0;
}
Но получил ошибку:
main.cpp:2:33: error: /usr/local/include/boost/boost.hpp: No such file or directory.
Попробуйте, для эксперимента:
#include </usr/local/include/boost/boost.hpp>
int main() {
// Some code...
return 0;
}
Та же ошибка.
Попробуйте скопировать файл boost.hpp.gch в другое место - та же ошибка.
Если я поставлю файл boost.hpp на то же место - работает нормально (поэтому с путем нет проблем):
ls /usr/local/include/boost | grep boost
boost.hpp
boost.hpp.gch
Так что компилятор использует заголовок boost.hpp. Но почему компилятор не видит предварительно скомпилированный boost.hpp.gch ??