3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C++】ビルドを高速化!Visual Studio 2022で学ぶプリコンパイルヘッダー入門

3
Posted at

毎回ヘッダーファイルのinclude処理を行うことで、コンパイルが遅くなることが多々あるかと思います。
プリコンパイルの機能を利用することで、高速な開発が可能になります。
本記事では、C++でプリコンパイルを行う方法を紹介したいと思います。

想定環境

  • VisualStudio2022
  • C++

プリコンパイルとは

プリコンパイルとは、ヘッダーファイルをあらかじめコンパイルしてキャッシュ化しておく仕組みのことです。
プリコンパイルを行っておくことで、ソースファイルではそのキャッシュを利用するため、先頭で#includeを書いて毎回ゼロから解析する必要がなくなります。
大規模なプロジェクトではビルド時間の大幅短縮といったメリットがある一方で、頻繁に変更するファイルをプリコンパイルすると、再コンパイルの必要が出てくるようなデメリットも存在します。

プリコンパイルのチュートリアル

本記事ではチュートリアル的にiostreamのみをプリコンパイルします。

ソースコード

pch.h
//------------------------------------------------------------
//! @file pch.h
//! @brief プリコンパイル済みヘッダーファイル
//! @author つきの
//------------------------------------------------------------
#pragma once
#include <iostream> // 標準入出力
pch.cpp
//---------------------------------------------
//! @file pch.cpp
//! @brief プリコンパイル済みヘッダーファイルを生成するためのソースファイル
//! @author つきの
//---------------------------------------------
#include "pch.h"
main.cpp
//---------------------------------------------
//! @file   main.cpp
//! @brief  メインソースファイル
//! @author つきの
//---------------------------------------------
#include "pch.h"//プリコンパイル済みヘッダーファイルをインクルード
//エントリポイント
int main() {
	//ハローワールドを表示
	std::cout << "Hello, World!" << std::endl;
	return 0;
}

pchという名前は、プリコンパイルファイルで慣習的に使用される名前です。

プロジェクト設定

プロジェクト->プロパティからプロパティウィンドウを開きます。
スクリーンショット (123).png
プロパティウィンドウの左側で構成プロパティ->C/C++->プリコンパイル済みヘッダーを選択してください。
画面右側の一番上の項目のプリコンパイル済みヘッダー使用(/Yu)にしてください。
上から二番目の項目プリコンパイル済みヘッダーファイルpch.hを追加してOKをクリックします。
スクリーンショット (129).png
プロパティウィンドウ右下の適用をクリックして変更を適用し、ウィンドウを閉じます。
スクリーンショット (130).png
画面右のソリューションエクスプローラーから、プリコンパイル済みヘッダーキャッシュを生成するためのファイル(本記事ではpch.cpp)を右クリックし、プロパティをクリックしてこのファイルのみの設定を行うためのプロパティウィンドウを開きます。
スクリーンショット (131).png
プロパティウィンドウの左側で構成プロパティ->C/C++->プリコンパイル済みヘッダーを選択し、ウィンドウ右側の一番上の項目にあるプリコンパイル済みヘッダー作成(/Yc)に変更してください。
適用をクリックしたらプリコンパイルの設定完了です。
スクリーンショット (132).png

確認

F5キーなどでプロジェクトをコンパイルます。

result
Hello, World!

コンパイルが通ったことを確認したら、エクスプローラを開いて、x64ディレクトリのDebugReleaseのディレクトリ(ビルドした時のVisualStudio2022モードのディレクトリ)を開いて、.pchファイルがあることを確認して下さい。
生成されていれば、プリコンパイルが成功しています。
スクリーンショット (133).png

総括

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?