언어/C

[C] 미리 컴파일된 헤더

program-yam 2025. 5. 29. 12:11
미리 컴파일된 헤더( Precompiled Header, PCH )는 컴파일 시간을 단축하기 위해 자주 변경되지 않는 헤더 파일을 미리 컴파일해두고, 이후 빌드 시 다시 컴파일하지 않고 재사용하는 기능을 말한다.

 

✅ 미리 컴파일된 헤더의 개념

  • c++ 프로젝트에서 <windows.h>, <iostream> 같은 무거운 헤더 파일들은 컴파일러가 파싱하는 데 상대적으로 시간이 오래 걸린다.
  • 이러한 헤더들을 한 번만 컴파일하고 결과를 캐시처럼 재사용하면 전체 컴파일 속도가 빨라진다.
  • 이를 위해 컴파일러는 .pch라는 파일로 헤더의 중간 결과물을 저장해 둔다.

 

✅ 사용 방법

// pch.h
#pragma once
#include <iostream>
#include <vector>
#include <Windows.h>

pch용 헤더 파일 생성 ( pch.h )

 

// pch.cpp
#include "pch.h"

pch를 실제로 컴파일할 cpp 파일 생성 ( pch.cpp )

 

 

프로젝트 속성 - C/C++ - 미리 컴파일된 헤더

미리 컴파일된 헤더를 사용(/Yu)

미리 컴파일된 헤더 파일을 pch.h로 설정하고 확인

 

이후 생성된 cpp파일들은 자동으로 pch.h를 포함한다.

✅ 장점

  • 빌드 속도 향상
  • 자주 바뀌지 않는 공통 헤더는 한 번만 컴파일

 

⚠️ 주의할 점

  • pch.h가 변경되면 다시 컴파일되어야 함 ( 자주 바뀌는 헤더는 pch에 포함하지 않는 것이 좋다. )
  • 컴파일 에러가 나면 디버깅 힘듬 ( 헤더의 순서와 포함 관계에 주의 )