Question

J'essaie d'inclure 2 fichiers stdafx.h spécifiques à la plate-forme dans mon fichier .cpp, mais le compilateur n'est pas satisfait lorsque j'essaie de #ifdef.

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

Vous vous demandez peut-être pourquoi j'utilise stdafx.h dans le code Mac, mais ce n'est pas important pour le moment:).

Lorsque j'essaie de compiler le code sous Windows, je reçois le message Erreur fatale C1018 . J'ai essayé d'inclure d'autres fichiers d'en-tête avec #ifdef dans le même fichier, et le compilateur était heureux. Par conséquent, il semble que Windows n'aime pas stdafx.h comme # ifdef-ed ou que Windows n'autorise que #include stdafx.h être la première ligne du fichier.

Donc ma question est, pourquoi?

Kat

Était-ce utile?

La solution

Lorsque le compilateur inclut un en-tête précompilé, il "oublie" tout ce qui est venu avant l'en-tête. Ainsi, votre #elif ne correspond plus à un #if.

Autres conseils

En effet, les en-têtes précompilés sont activés. Désactivez-les et tout devrait bien se passer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top