毎回ヘッダーファイルのinclude処理を行うことで、コンパイルが遅くなることが多々あるかと思います。
プリコンパイルの機能を利用することで、高速な開発が可能になります。
本記事では、C++でプリコンパイルを行う方法を紹介したいと思います。
想定環境
VisualStudio2022C++
プリコンパイルとは
プリコンパイルとは、ヘッダーファイルをあらかじめコンパイルしてキャッシュ化しておく仕組みのことです。
プリコンパイルを行っておくことで、ソースファイルではそのキャッシュを利用するため、先頭で#includeを書いて毎回ゼロから解析する必要がなくなります。
大規模なプロジェクトではビルド時間の大幅短縮といったメリットがある一方で、頻繁に変更するファイルをプリコンパイルすると、再コンパイルの必要が出てくるようなデメリットも存在します。
プリコンパイルのチュートリアル
本記事ではチュートリアル的にiostreamのみをプリコンパイルします。
ソースコード
//------------------------------------------------------------
//! @file pch.h
//! @brief プリコンパイル済みヘッダーファイル
//! @author つきの
//------------------------------------------------------------
#pragma once
#include <iostream> // 標準入出力
//---------------------------------------------
//! @file pch.cpp
//! @brief プリコンパイル済みヘッダーファイルを生成するためのソースファイル
//! @author つきの
//---------------------------------------------
#include "pch.h"
//---------------------------------------------
//! @file main.cpp
//! @brief メインソースファイル
//! @author つきの
//---------------------------------------------
#include "pch.h"//プリコンパイル済みヘッダーファイルをインクルード
//エントリポイント
int main() {
//ハローワールドを表示
std::cout << "Hello, World!" << std::endl;
return 0;
}
pchという名前は、プリコンパイルファイルで慣習的に使用される名前です。
プロジェクト設定
プロジェクト->プロパティからプロパティウィンドウを開きます。

プロパティウィンドウの左側で構成プロパティ->C/C++->プリコンパイル済みヘッダーを選択してください。
画面右側の一番上の項目のプリコンパイル済みヘッダーを使用(/Yu)にしてください。
上から二番目の項目プリコンパイル済みヘッダーファイルにpch.hを追加してOKをクリックします。

プロパティウィンドウ右下の適用をクリックして変更を適用し、ウィンドウを閉じます。

画面右のソリューションエクスプローラーから、プリコンパイル済みヘッダーのキャッシュを生成するためのファイル(本記事ではpch.cpp)を右クリックし、プロパティをクリックしてこのファイルのみの設定を行うためのプロパティウィンドウを開きます。

プロパティウィンドウの左側で構成プロパティ->C/C++->プリコンパイル済みヘッダーを選択し、ウィンドウ右側の一番上の項目にあるプリコンパイル済みヘッダーを作成(/Yc)に変更してください。
適用をクリックしたらプリコンパイルの設定完了です。

確認
F5キーなどでプロジェクトをコンパイルます。
Hello, World!
コンパイルが通ったことを確認したら、エクスプローラを開いて、x64ディレクトリのDebugかReleaseのディレクトリ(ビルドした時のVisualStudio2022モードのディレクトリ)を開いて、.pchファイルがあることを確認して下さい。
生成されていれば、プリコンパイルが成功しています。

総括
-
プリコンパイル済みヘッダーを使うことでヘッダーファイルを事前にコンパイルしてキャッシュ化し、ビルド時間を短縮することが出来る - pch.cpp は #include "pch.h" のみを書き、
プロパティからプリコンパイル済みヘッダーの設定を作成 (/Yc)に変更する必要がある - 他の
cppファイルでは使用 (/Yu)にする必要がある。