VC 으로 개발을 하다보면 종종 겪는 에러 입니다. 

저는 stdafx.cpp 를 프로젝트에서 뺏다가 다시 추가했더니 이런 에러가 뜨더군요. 

2>------ Build started: Project: XXXX, Configuration: Debug Win32 ------
2>Compiling...
2>XXXX.cpp
2>d:\XXXX\XXXX.cpp(4) : error C2859: d:\XXXX\debug\vc80.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header.
2>d:\XXXX\XXXX.cpp(4) : error C2859: d:\XXXX\debug\vc80.idb is not the idb file that was used when this precompiled header was created, recreate the precompiled header.
2>Build log was saved at "file://d:\XXXX\Debug\BuildLog.htm"
2>XXXX - 2 error(s), 0 warning(s) 

인터넷을 살펴보면 일반적으로

프로젝트 세팅 -> C/C++ 컴파일러 -> Precompiled Headers 에서

Create/Use Precompiled Header 항목을  Not Using Precompiled Headers 으로 해결하라고 합니다. 

하지만 이 방법은 큰 프로젝트에서는 빌드시간이 늘어나는 단점이 있습니다. 

위 설명대로 vc80.idb 를 새로 생성하면 됩니다. 

솔루션 탐색기에서 stdafx.cpp 의 Property Page 를 열어서 Precompiled Headers 의 

Create/Use Precompiled Header 항목을  Create Precompiled Header (/Yc) 으로 바꾼뒤에 빌드를 하면 새로 생성됩니다. 

일반적으로 Precompiled Header 옵션으로 프로젝트를 생성하면 다른 cpp 파일은 Use Precompiled Header (/Yu) 인데 stdafx.cpp 만 Create Precompiled Header (/Yc) 임을 알 수 있습니다. 

+ Recent posts