본문 바로가기

Robotics/Software Tech.

'warning C4651' 의 해결책은 'rebuild all'이다.

Visual Studio 2008을 사용한다.
보통 Debug모드로 컴파일을 하다가 배포버젼을 만들기위해 Release로 컴파일하면..
가끔 이런 워닝이 뜬다.

warning C4651: '/DUNICODE' specified for precompiled header but not for current compile
warning C4651: '/D_UNICODE' specified for precompiled header but not for current compile


이때, 당황하지 말고..MSDN 또는 네이버형에게 물어본다.
MSDN : http://msdn.microsoft.com/ko-kr/library/h6dykdte(VS.80).aspx

msdn을 따라가면 이렇게 표시되어 있다.

컴파일러 경고(수준 1) C4651

오류 메시지
미리 컴파일된 헤더에 대해 'definition'을(를) 지정했으나 현재 컴파일에 대해서는 지정하지 않았습니다.
'definition' specified for precompiled header but not for current compile

미리 컴파일된 헤더를 생성할 때에는 정의를 지정했지만 현재 컴파일에서는 지정하지 않았습니다.

미리 컴파일된 헤더에서는 정의가 효력을 발휘하지만 나머지 코드에서는 유효하지 않습니다.

미리 컴파일된 헤더를 /DSYMBOL을 사용하여 빌드한 경우 /Yu 컴파일에 /DSYMBOL을 지정하지 않으면 컴파일러에서 이 경고가 발생합니다. 이 경고를 해결하려면 /Yu 명령줄에 /DSYMBOL을 추가하십시오.

미리 컴파일된 헤더에 definition을 했는데, 현재 컴파일에서는 지정하지 않았다?

그렇다면!!!! 결론은??

그렇다.. 'Rebuild All'을 하라는 의미다. -_-;