RAD Studio (Common)
C++ Compiler Precompiled Headers

ProjectOptionsC++ CompilerPrecompiled headers 

Use this dialog box to set C++ Compiler Precompiled headers options. 

You might also want to read about and use the Precompiled Header Wizard.

Build Configuration options 
Build Configuration  
Displays the name of the current build configuration associated with the options on this page. There are three default build configurations: Base, Debug, and Release.  
Apply Options...  
Displays the Apply Option Set dialog box to apply the options in a named option set to the current configuration.  


Common items 
Value from <parent configuration or option set>  
Indicates the value in the parent build configuration or referenced option set. If you change this value here, the change will potentially affect the Base configuration (that is, if you click OK on the Project->Options dialog and subsequently build your project).  
Indicates whether inheritance (from a parent configuration) is on or off for the option. To control inheritance, click the option, and then open the associated generic list dialog box by clicking the Ellipsis that appears. The Inherit values from parent configuration checkbox controls whether your current build configuration inherits the values listed in the lower box of the generic list dialog box.  
<any item in red print>  
Indicates that this option has secondary options available. To view the secondary options, click the + sign in front of the option in red.  
<any item in boldface print>  
Indicates that the value of this option has been changed from the value in the parent configuration or referenced option set.  
Down Arrow Pop-Up Button  
Appears after you click an option that has a set of available choices (such as True, False). Click Down Arrow to display and choose the value you want from the available choices.  
Ellipsis Pop-Up Button  
Appears after you click an option whose value is either of the following:
  • An ordered list that you enter and then arrange in the desired order, such as a list of defines or search paths. Clicking Ellipsisinvokes the generic ordered list dialog box.
  • A single filename, directory or folder name. Clicking Ellipsis invokes the standard Open file or Browse for folder dialog box.


Precompiled headers options 
Cache precompiled headers (Must be used with -H or -H”xxx”) (-Hc)  
The compiler caches the precompiled headers it generates. This is useful when you are precompiling more than one header file. Default = False  
Enable smart cached precompiled headers (-Hs)*  
The compiler smart-caches the precompiled headers it generates (smart-caching uses less memory than the regular caching option -Hc). Caching header files in memory is useful when you are precompiling more than one header file. Default = True  
External type files (-He)*  
The compiler generates a file or files that contain debug type information for all the symbols contained in the precompiled headers. The files end with the .#xx extension, where xx is 00 for the first file generated and is incremented for each additional type-information file required.
Using this option dramatically decreases the size of your .OBJ files, since debug type information is centralized and is not duplicated in each .OBJ file. Default = True  
Include contents of (-Hi)  
Includes the contents of the specified header file or files. Check the Inherit values from parent configuration(s) box to act as if the immediate ancestor's files are merged into this list of files, though this list is not actually changed. See the description of the Ellipsis pop-up button, above.  
Inject precompiled header file (-Hi and -Hh=)  
Includes the contents of the single header file that you specify, and then instructs the compiler to stop precompiling at the end of that header each time the compiler is invoked. Is equivalent to adding the following directives at the beginning of each .cpp file:
#include "myfile.h"
#pragma hdrstop  
PCH Filename (-H=)  
Specify the name of your precompiled header file. The compiler sets the name of the precompiled header to the specified filename. When this option is set, the compilers generate and use the precompiled header file that you specify.
WARNING: If you import a project from BDS2006, the project's PCH file location is not imported due to Windows Vista compatibility, since Vista restricts where users may place files. See the description of the Ellipsis pop-up button, above.  
PCH Usage  
Select from the following values:
Do not use
Do not use precompiled headers.
Generate and use (-H)
The IDE generates and uses precompiled headers. The default file name is <intermediateoutputdirectory><projectname>.pch for IDE projects, and is BC32DEF.CSM for command line compiles. This is the default.
Use but don't generate (-Hu)
Compilers use preexisting precompiled header files; new precompiled header files are not generated.  
Replace header name(s): (-Hr)  
Replaces header name from name1 to name2. See the description of the Ellipsis pop-up button, above.  
Stop precompiling after (-Hh=)  
Terminates compiling the precompiled header after processing the specified file. You can use this option to reduce the disk space required for precompiled headers.
When you use this option, the file you specify must be included from a source file for the compiler to generate a .CSM file.
You can also use #pragma hdrstop within your .CPP files to specify when to stop the generation of precompiled headers.
You cannot specify a header file that is included from another header file. For example, you cannot list a header included by windows.h, because this would cause the precompiled header file to be closed before the compilation of windows.h was completed. See the description of the Ellipsis pop-up button, above.  


General option 
Saves the current settings as the default for each new project.  
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!