2016-06-03 14 views
0

Ich habe Code, der plattformübergreifend verwendet wird (Windows und Linux). In Windows verwendet der Code vorkompilierte Header, also schließe ich stdafx.h ein, aber in Linux tue ich das nicht. So habe ich dies am Anfang jeder CPP-Datei:Wie zu verwenden/vermeiden # pragma innerhalb #ifdef Aussage

#ifdef WIN32 
#include "stdafx.h" 
#endif // WIN32 // compiler error here 

Dies kompiliert unter Linux in Ordnung, aber in Visual Studio 2013 erhalte ich die Compiler-Fehler:

Error 2 error C1020: unexpected #endif

Ich denke, es liegt daran, dass stdafx.h enthält ein #pragma once Makro.

Wie kann ich das beheben und gibt es eine bessere Möglichkeit, den Code plattformübergreifend zu machen?

+0

Ich glaube nicht, dass das Problem ist. '#ifdef WIN32 #pragma einmal # endif" funktioniert gut in diesem [Online-VS-Compiler] (http://rextester.com/l/cpp_online_compiler_visual). –

+4

Mögliches Duplikat von [Handhabung von stdafx.h im plattformübergreifenden Code] (http://stackoverflow.com/questions/1191248/handling-stdafx-h-in-cross-platform-code) –

+0

Das obige Duplikat schlägt vor, dass Sie eine haben Tippfehler in Ihrem Code. –

Antwort