Search code examples
c++headerincludeconditional-compilation

include of header with ifdef


I've tried placing the following in my C++ code:

#ifdef _WIN32  
#include "stdafx.h"  
#endif  

but I getan error:

PCH warning: header stop cannot be in a macro of #if block. An IntelliSense PCH file was not generated.  

I'm trying to let my code work both on windows and linux, stdafx.h does not work on linux where it's a must on visual studio.

Is there another way to use the include with ifdef?


Solution

  • Unfortunately you can not do that with precompiled header and using Microsoft MSVC. The MSVC totally ignores all code (and whatever garbage) lines that precede that #include "stdafx.h" line. As result the #endif will be unexpected to it.

    Put that #ifdef _WIN32 and what not inside of stdafx.h.