비주얼 C++ 컴파일러는 미리 컴파일된 헤더(Precompiled Header)를 지원하고, 프로젝트 설정을 통해 대상 헤더를 지정할 수 있다. 특히 MFC는 수정하지 않고 사용하는 헤더 수가 많기 때문에, 이 방식을 사용하면 매번 전체를 컴파일하지 않아 개발 속도가 빨라진다.
그런데 새로운 소스 파일을 추가하다 보면 다음과 같은 오류 메시지를 볼 수 있다. 이 오류 메시지는 미리 컴파일된 헤더와 관련이 있으므로, 프로젝트 설정에서 미리 컴파일된 헤더를 사용하지 않겠다고 설정하면 없앨 수 있다. 하지만 앞에 언급한 효율을 포기하는 것이므로 바람직하지는 않다.
fatal error C1010: unexpected end of file while looking for precompiled header directive
미리 컴파일 된 헤더를 사용하려면, 모든 CPP 확장자와 소스 파일은 미리 컴파일 된 헤더를 반드시 포함해야 한다. 위에 나타난 오류는 이것을 빠뜨려서 발생한 것일 뿐이다. 이때는 다음 구문을 오류가 발생한 소스 파일의 가장 위쪽에 넣어주면 된다.
#include "stdafx.h"
미리 컴파일된 해더는 PCH 확장자로 컴파일되며, 대상 헤더가 변경되면 다시 컴파일 된다. 하지만 때때로 변경된 내용이 반영되지 않아 문제를 일으키는 경우가 있다. 이때는 [Bulid]->[Rebulid All] 메뉴를 사용하여 모두 지우고 새로 컴파일할 수 있다. 문제가 없는 것 같은데 자꾸 정상적으로 동작하지 않으면 이 방법을 꼭 시도해보자.
출처 : 윈도우프로그래밍(Visual C++ MFC Programming), 한빛미디어, 김선우, 신화선 저
'Development > 삽질의 추억' 카테고리의 다른 글
LNK2019 에러 (0) | 2011.08.13 |
---|---|
fclose()없이 fopen()으로 열 수 있는 파일 객체 수 (0) | 2011.08.13 |
DISTINCT 사용하기... (0) | 2011.08.13 |
CreateFile/CloseHandle을 반복적으로 사용할때... (0) | 2011.08.13 |
CreateFile(), WriteFile() 사용 시 파일 끝에서 부터 쓰기 (0) | 2011.08.13 |