Seunghyun Yoo

Posts | Development | About

[KR] g++ Precompiled header

시뮬레이터 작업을 하고 있는데, precompiled header를 사용하기 위해 gch 파일을 생성하였다.

그런데 빌드를 할 때 g++에서 실제로 gch를 사용하는지 알기 어려웠음. 그리고 잘못한 것은 gch 파일을 build 디렉토리에 두었던 것. (그렇다고 src 디렉토리에 gch 파일을 생성하는 것도 별로라고 생각.)

gch가 사용되는지 알아보기 위하여 가설을 세운다면:

시간으로 재는 것도 방법일 수 있겠다. 눈에 띄는 속도 증가가 없다면 precompiled header가 사용되지 않는 상황.

Manual (https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc.pdf) 을 보면,

A precompiled header file is searched for when #include is seen in the compilation. As
it searches for the included file (see Section “Search Path” in The C Preprocessor) the
compiler looks for a precompiled header in each directory just before it looks for the include
file in that directory. The name searched for is the name specified in the #include with
‘.gch’ appended. If the precompiled header file cannot be used, it is ignored.

암묵적인 규칙은: .gch 확장자가 붙어야하고 따로 별도의 위치를 지정할 수 있는 기능은 없는 것 같다. 혹시 아시는 분 있으면 알려주세요. :’(

어쨌든, 타협안으로 symbolic link를 만들었음.