Pregunta

Estoy tratando de incluir 2 archivos stdafx.h específicos de la plataforma en mi archivo .cpp, pero el compilador no está contento cuando intento #ifdef.

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

Quizás se pregunte por qué estoy usando stdafx.h en el código de Mac, pero eso no es importante en este momento :).

Cuando intento compilar el código en Windows, recibo: Error grave C1018 . Intenté incluir otros archivos de encabezado con #ifdef en el mismo archivo, y el compilador estaba contento. Por lo tanto, parece que a Windows no le gusta que stdafx.h sea # ifdef-ed, o que Windows solo permite #include stdafx.h ser la primera línea del archivo.

Entonces mi pregunta es, ¿por qué?

Kat

¿Fue útil?

Solución

Cuando el compilador incluye un encabezado precompilado, básicamente "olvida". todo lo que vino antes del encabezado. Por lo tanto, su #elif ya no coincide con un #if.

Otros consejos

Esto se debe a que tienes los encabezados precompilados activados; apágalo y deberías estar bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top