본문으로 바로가기

fatal error C1010: unexpected end of file while looking for precompiled header directive
에러는 “stdafx.h” 헤더 파일이 없어서 나오는 에러이다.

특정한 프로젝트에 복사해서 붙여 넣기 하기를 실행 할 경우 에러가 발생한다.
DLL 프로젝트를 만들면서 다른 프로젝트의 소스를 그대로 가져오는 경우, 컴파일 속성이 다르므로 간혹 이런 에러를 만나게 되는데 당황하지 말자. 

해결방법은 

#include “stdafx.h”를 추가 하거나

VC++의 Project -> Settings(Alt + F7) -> C/C++ 탭 -> Category: Precompiled Headers 에서
Not using precompiled headers를 지정한다

이는 Visual C++ 컴파일러는 미리 컴파일된 해더(Precompiled Head를 지원하고, 프로젝트 설정을 통해 대상 헤더를 지정할 수 있기 때문이다. 
특히 MFC는 수정하지 않고 사용하는 헤더 수가 많기 때문에, 이 방식을 사용하면 매번 전체를 컴파일하지 않아 개발 속도가 빨라진다.

위와 같이 하게 되면 해당.cpp는 Precomplie 하지 않게 된다.
또다른 방법으로 general 탭 에서 exclude file from build 를 체크해주면 빌드시에 아예 제외하게 된다.