Pergunta

Eu estou tentando incluir específico da plataforma 2 stdafx.h arquivos no meu arquivo .cpp, mas o compilador é infeliz quando tento #IFDEF-lo.

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

Você pode se perguntar por que eu estou usando stdafx.h no código de Mac, mas isso não é importante no momento:.)

Quando tento compilar o código no Windows, recebo: Erro fatal C1018 . Tentei anexando outros arquivos de cabeçalho com #ifdef no mesmo arquivo, eo compilador estava feliz. Portanto, parece que o Windows não gosta stdafx.h ser # ifdef-ed, ou que o Windows só permite # include stdafx.h para ser a primeira linha no arquivo.

Assim, a minha pergunta é: por quê?

Kat

Foi útil?

Solução

Quando o compilador inclui um cabeçalho pré-compilado, ele basicamente "esquece" qualquer coisa que veio antes do cabeçalho. Assim, a sua #elif não corresponde a um #if mais.

Outras dicas

Este é porque você Precompiled cabeçalhos ligado -. Desligá-lo e você deve ser fino

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top