Когда я компилирую файл С++, который включает предварительно скомпилированный заголовок, все работает так, как ожидалось.
// test.c++
#include <precompiled.h>
#include <header.h>
main() {}
> g++-4.7 --std=c++11 BLAH... test.c++ -H 2>&1 | grep precompiled.h
! precompiled.h.gch
(! означает, что gcc нашел и использовал предварительно скомпилированный заголовок)
Однако, когда я помещаю #include ‹ precompiled.h > в header.h, это не работает:
// test.c++
#include <header.h>
main() {}
> g++-4.7 --std=c++11 BLAH... test.c++ -H 2>&1 | grep precompiled.h
. precompiled.h
(нет! или x означает, что gcc не удалось найти предварительно скомпилированный заголовок)
Что происходит? Я так понимаю, что если gcc нажмет #include, указывающий на заголовок с соответствующим .gch перед любыми токенами C/C++, он будет использовать GCH, что предполагает, что вложенное включение должно быть в порядке.
Я ошибаюсь?
-Winvalid-pch
подсказывает? - person MSalters   schedule 06.03.2012#include <precompiled.h>
Остальное не должно быть важным, верно? - person Casey Rodarmor   schedule 06.03.2012