[cfe-dev] Precompiled header without prefix header ?

Sebastian Redl sebastian.redl at getdesigned.at
Tue Mar 19 01:44:38 PDT 2013


On 18.03.2013, at 20:44, fab wrote:

> I am working on a cross-platform codebase on Clang/MacOS X that is also
> compiled with Visual Studio on Windows and GCC on Linux.
> 
> The source code headers always include "precomp_common.h" at the top of each
> header files. But according to the Clang documentation
> (http://clang.llvm.org/docs/UsersManual.html#usersmanual-precompiled-headers)
> Clang will NOT use the PCH in this case and no speed up will be performed
> since it was not include via "- include".
> 
> Using Clang it seems the only way is to perform a conditional include:
> 
> 1.
> #ifndef __clang__
>   #include "precomp_common.h"
> #endif
> 
> 2. Add "precomp_common.h" to the prefix header via -include option.
> 
> I wonder if there is a "cleaner" way to do it.

I generally find the VS model to be the unclean one. Remove the include directive from all files, and in your project options, under C/C++ -> Advanced, add it to Forced Includes. This makes it pass the file to the compiler via the equivalent of the -include directive. (You still need to have it specified as the precompiled header.)

Sebastian



More information about the cfe-dev mailing list