문제

나는 2 개의 플랫폼에 관한 것을 포함 시키려고 노력하고있다 stdafx.h .CPP 파일의 파일이지만 #ifdef를 시도 할 때 컴파일러가 불행합니다.

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

Mac 코드에서 왜 stdafx.h를 사용하고 있는지 궁금 할 것입니다. 그러나 지금은 중요하지 않습니다 :).

Windows에서 코드를 컴파일하려고하면 다음을받습니다. 치명적인 오류 C1018. 같은 파일에 다른 헤더 파일을 #ifdef로 동봉했는데 컴파일러가 행복했습니다. 따라서 Windows가 stdafx.h가 #ifdef-ed가되는 것을 좋아하지 않거나 Windows 만 허용하는 것처럼 보입니다. #include stdafx.h파일의 첫 번째 줄이됩니다.

그래서 내 질문은 왜?

카트

도움이 되었습니까?

해결책

컴파일러에 사전 컴파일 된 헤더가 포함되면 기본적으로 헤더 앞에 온 모든 것을 "잊어 버립니다". 따라서 #ELIF는 더 이상 #IF와 일치하지 않습니다.

다른 팁

사전 컴파일 된 헤더가 켜져 있기 때문입니다. 끄면 괜찮을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top