programing tip

.h.gch 파일이란 무엇입니까?

itbloger 2020. 8. 12. 07:52
반응형

.h.gch 파일이란 무엇입니까?


최근에 G ++로 프로그램을 만들어야하는 수업 프로젝트가있었습니다.

나는 메이크 파일을 사용했고 어떤 이유로 가끔 .h.gch 파일을 남겼습니다.

때로는 이것이 컴파일에 영향을 미치지 않았지만, 종종 컴파일러가 수정되었거나 의미가없는 문제에 대해 오류를 발생시키는 결과를 낳았습니다.

두 가지 질문이 있습니다.

1) .h.gch 파일이란 무엇이며 어떤 용도로 사용됩니까?

2) 청소하지 않으면 왜 그런 문제가 발생합니까?


.gch파일은 미리 컴파일 된 헤더이다.

A는 경우 .gch다음을 찾을 수없는 일반적인 헤더 파일이 사용됩니다.

그러나 프로젝트가 미리 컴파일 된 헤더를 생성하도록 설정된 경우 존재하지 않는 헤더를 만들고 다음 빌드에서 사용합니다.

때때로는 *.h.gch손상되거나 오래된 정보를 포함하므로 해당 파일을 삭제하고 다시 컴파일하면 문제가 해결됩니다.


파일에 대해 알고 싶다면 터미널에 입력하기 만하면됩니다.

file filename

file a.h.gch 제공합니다 :

GCC precompiled header (version 013) for C

GCC 미리 컴파일 된 헤더입니다.

Wikipedia에는 ​​반쯤 괜찮은 설명이 있습니다. http://en.wikipedia.org/wiki/Precompiled_header


a) 미리 컴파일 된 헤더 : http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html

b) .h 파일에서 "캐시 된"정보를 포함하며 각 .h 파일을 변경할 때마다 업데이트해야합니다. 발생하지 않는 경우-프로젝트에 잘못된 종속성이 설정되어 있습니다.


다른 답변은 gch 파일이 무엇인지와 관련하여 완전히 정확합니다. 그러나 컨텍스트 (이 경우 g ++를 사용하는 초보자)가 전부입니다. 이 맥락에서 두 가지 규칙이 있습니다.

  1. 절대로 g ++ 컴파일 라인에 .h 파일을 넣지 마십시오. .cpp 파일 만. .h 파일이 실수로 컴파일 된 경우 * .gch 파일을 제거하십시오.

  2. 절대로 #include 문에 .cpp 파일을 넣지 마십시오.

규칙 1이 위반되면 어떤 시점에서 질문에 설명 된 문제가 발생합니다. 규칙 2가 깨지면 링커는 곱셈으로 정의 된 기호에 대해 불평 할 것입니다.

참고 URL : https://stackoverflow.com/questions/1241399/what-is-ah-gch-file

반응형