비주얼 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), 한빛미디어, 김선우, 신화선 저

 

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,