Когато компилирам c++ файл, който включва предварително компилиран хедър, всичко работи според очакванията
// 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