Frage

Ich versuche, 2 plattformspezifische enthalten stdafx.h Dateien in meiner CPP-Datei, aber der Compiler ist unglücklich, wenn ich versuche, es zu #IFDEF.

#ifdef _WIN32
#include "stdafx.h"
#elif _MAC
#include "MAC/stdafx.h"
#endif

Sie fragen sich vielleicht, warum ich stdafx.h im Mac-Code verwenden, aber das ist im Moment nicht wichtig.)

Wenn ich versuche, den Code auf Windows zu kompilieren, erhalte ich: Fatal Error C1018 . Ich habe versucht, andere Header-Dateien mit #ifdef in der gleichen Datei umschließt, und der Compiler glücklich war. Daher sieht es aus wie Windows nicht stdafx.h # ifdef-ed sein mag, oder dass Windows erlaubt nur #include stdafx.h die erste Zeile in der Datei zu sein.

Also meine Frage ist, warum?

Kat

War es hilfreich?

Lösung

Wenn der Compiler eine vorkompilierte enthält Header, es im Grunde „vergisst“ alles, was vor dem Header kam. So kann Ihr #elif mehr zu einem #if nicht abgestimmt ist.

Andere Tipps

Das ist, weil Sie vorkompilierte Header eingeschaltet -. Schalten Sie es aus und Sie sollten in Ordnung sein

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top