Precompiled Header?
Precompiled Header는 번역해보면 사전 컴파일 된 헤더라는 뜻이 된다.
의미와 비슷하게 컴파일 시간을 줄이기 위해 차후 개발에 변경 여지가 크게 없는 소스를
미리 컴파일 해두고 컴파일 결과를 저장해 컴파일시 해당 소스의 컴파일을 생략하는 것을 말한다.
개발중인 프로젝트가 커지면 커질수록 컴파일 속도가 점차 느려진다.
커질수록 느려지는 컴파일 속도에 개선점중에는 여러가지가 있다.
대표적으로
1. Precompiled Header
2. 병렬 빌드 (회사에서 많이 사용)
3. 모듈화 혹은 모듈을 dll화
4. 하드웨어 업그레이드...ㅎㅎ
5. 코드 개선 ex) 올바른 inline, template, static 사용
5가지중 가장 Precompiled Header 사용하기 가장 간편하고 묵직한 녀석일수록 크게
컴파일 속도가 개선된다.
간단한 예제를 만들어보겠다.
일단 프로젝트에 개별 폴더 생성을 추천한다.
Precompiled Header는 타 소스와는 다르게 관리하기에 헤더 추가에 용이하게
하기 위함이다. (조금은 특별 취급 하는게 좋겠다는 생각) 물론 개인 자유다.
VC++에서 pch는 기본적으로 사용하는 네이밍이 있다.
바로 stadfx.cpp와 stadfx.인데 예제이기에 그를 따라 생성해보도록 하겠다.
Precompiled Header 설정을 위해 프로젝트 속성을 누른다.
속성에 C/C++ 하위에 있는 미리 컴파일 헤더를 선택하자.
그 후 미리 컴파일된 헤더를 사용(/Yu)을 선택하고 적용한다.
그후엔 stdafx.cpp 속성에서 위와 동일하게 선택한 후 미리 컴파일된 헤더를
사용(/Yu)을 선택하고 적용한다.
설정은 끝났다.
이제 stdafx.cpp에 stdafx.h를 추가해준다.
그후엔 stdafx.h에 향후 변경점이 적고 컴파일 시간이 오래 소요될 헤더를 추가해서 적용하면 된다.
'Programming > Game-Math' 카테고리의 다른 글
벡터 내적 공식 유도 (0) | 2019.12.18 |
---|---|
카메라의 뷰 좌표계와 LookAt 행렬 유도 (0) | 2019.12.18 |
3차원 회전 행렬 구하기 by 오일러각 Input (1) | 2019.12.18 |
선형 변환(Linear Transformation)과 행렬(Matrix)의 관계 (0) | 2019.12.08 |
Singleton Pattern, Lazy Initialization (0) | 2019.11.04 |