A PCH file is produced only if the header stop point and the
code preceding it, mainly the header files, meet the following requirements:
The header stop point must appear at file scope.
It must not be within an unclosed scope established by a header
file. For example, a PCH file is not created in this case:
// xxx.h
class A
{
// xxx.c
#include "xxx.h"
int i;
};
The header stop point must not be inside a declaration
that is started within a header file. Also, in C++, it must not
be part of a declaration list of a linkage specification. For example,
in the following case the header stop point is int,
but because it is not the start of a new declaration, no PCH file
is created:
// yyy.h
static
// yyy.c
#include "yyy.h"
int i;
The header stop point must not be inside a #if block
or a #define that is started within a header
file.
The processing that precedes the header stop point
must not have produced any errors.
Note
Warnings and other diagnostics are not reproduced when the
PCH file is reused.
No references to predefined macros __DATE__ or __TIME__ must
appear.
No instances of the #line preprocessing
directive must appear.
#pragma no_pch must not appear.
The code preceding the header stop point must have
introduced a sufficient number of declarations to justify the overhead
associated with precompiled headers.
This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.
ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.