본문 바로가기

Programming/C & C++

warning C4603 & error C1020 : 매크로가 정의되지 않았거나 미리 컴파일된 헤더 사용 후와 정의가 다릅니다.

 

warning C4603: '__INCLUDE_GUARD_MACRO_H__': 매크로가 정의되지 않았거나 미리 컴파일된 헤더 사용 후와 정의가 다릅니다.
message : 여기에서 정의하지 않고 미리 컴파일된 헤더에 매크로 추가
message : 미리 컴파일된 헤더 사용
fatal  error C1020: 예기치 않은 #endif입니다.

warning C4603: '__INCLUDE_GUARD_MACRO_H__' : macro is not defined or definition is different after precompiled header use
Add macro to precompiled header instead of defining here
use of precompiled header** // the precompiled header stdafx.h is included in this line
fatal error C1020: unexpected #endif


평소처럼 미리 컴파일된 헤더를 include 하고, 그 전에 중복 include를 막기 위해 ifndef / define 을 사용하고, #pragma once 를 사용했는데 갑자기 나타난 에러와 경고

해결법은 굉장히 간단..하다
해당 문제가 발생한 헤더 파일의 속성 - 구성 속성 - 일반 - 항목 형식을 'C/C++ 헤더' 로 설정하면 된다..

새 항목 추가 시 .cpp로 잘 못 생성해서 그냥 확장자만 .h로 바꿨더니 발생한 문제로 추측한다..(이게 100%긴 하지만)