F.R.I.D.A.Y.

VS ERROR C1010 : 미리 컴파일된 헤더파일이 없습니다. 본문

DEV/Tip

VS ERROR C1010 : 미리 컴파일된 헤더파일이 없습니다.

F.R.I.D.A.Y. 2018. 10. 4. 17:20
반응형

 이 해결법을 찾으시는 분들이 많아서 리뉴얼을 진행했습니다.




 오류 목록을 보면 종종 임지와 같은 오류 표시가 나옵니다. #include "stdafx.h"[각주:1] (버전에 따라 pch.h) 를 찾을 수 없다고 나오는 오류가 있는데, 이는 미리 컴파일된 헤더를 사용으로 설정해놓고 미리 컴파일된 헤더를 사용하지 않아서 발생하는 문제입니다.

 종종 프로그램을 처음 접하거나 아직 미숙한 사람들이 미리 컴파일된 헤더를 사용으로 설정해놓은 프로젝트를 생성해 코드를 작성하면서 발생하는데 이 경우에는 크게 세가지 해결책이 있습니다.



1. 새 프로젝트 생성

 이 해결책은 빈프로젝트로 생성을 해버리면 되지만, 기존에 생성한 코드를 옮겨야 하는 문제가 있어 권장하는 방법은 아닙니다.


 프로젝트 생성에 관한 내용은 따로 포스트를 진행하였으니 링크한 글을 참고하기 바랍니다.

 https://pang2h.tistory.com/163



2. 미리 컴파일된 헤더를 생성해 #include 한다.

 애초에 설정대로 미리 컴파일된 헤더를 선언해 인클루드를 진행하면 되는 문제이기도 합니다. 다만, 불필요한 헤더가 하나 더 추가된다는 점이 마음에 들지는 않네요.


 1. 새 항목 만들기를 엽니다. 새 항목은 [ 솔루션 탐색기 - 헤더 파일(오른쪽 마우스) - 추가 - 새 항목 ]을 통해 열 수 있습니다. 혹은 [ Ctrl + Shift + A ] 단축키를 이용해 열 수 있습니다.



 2. 오류에서 나온 헤더 파일을 추가합니다. 제 경우에는 stdafx.h 헤더가 없다고 하니 stdafx.h를 이름으로 지어주어야겠군요. pch.h가 없다고 하시는 분은 pch.h 헤더를 이름으로 추가하시면 됩니다.



 3. main 함수가 존재하는 파일 최상단에 만든 미리 컴파일된 헤더를 인클루드합니다.


Question : 설정 후 컴파일을 했는데 C1854 오류가 발생하나요?

 


3. 설정을 수정한다.

 제가 가장 애용하는 옵션이자 다른 사람에게도 권장하는 옵션입니다.

 1. 상단 메뉴바에서 [프로젝트 - 프로젝트 속성[각주:2]]을 클릭합니다.



2. 설정 창이 열리면 좌측 메뉴에서 [C/C++ - 미리 컴파일된 헤더]를 선택한 후, 우측에 선택된 미리 컴파일된 헤더 옵션을 이미지와 같이 설정합니다.




해결이 되셨기 바랍니다 :)


  1. 여기서 웃긴게 실질적으로 미리 컴파일된 헤더는 pch가 더 맞다. 왜 stdafx로 했느냐 하면 MS의 윈도우 api를 정리하고 처리하는 팀 이름이 afx라서 그렇다고 한다. 자세한 건 모름. [본문으로]
  2. 속성(P)의 앞 글자들은 프로젝트의 이름을 나타내기 때문에 사용자마다, 프로젝트마다 다르다. [본문으로]
728x90
반응형
Comments