Siv3Dでプリコンパイル済みヘッダーを使用してビルド時間を半分に短縮する

  • 3
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Siv3D Advent Calendar 2015の18日目の記事です。

Siv3D、便利ですがビルドが大変です。SSDだと数秒ですがUSBに入れているプロジェクトでは数十秒かかります。そこでプリコンパイル済みヘッダーを使用してビルド時間を短縮しよう、ということです。
Play Siv3D!のFAQには

コンパイル時間を短くする方法はある?
プリコンパイル済みヘッダを作成・使用することで、ビルド時間を半分以下に短縮できます。

とありますが、詳しい説明がなかったので手順を記しておきます。
この記事ではVisual Studio 2013 Community update 5およびSiv3D June v2を使用します。

プロジェクトを作成する

いつも通りにSiv3Dのプロジェクトを作成します。すでに作成している場合は次へ進んでください。

ヘッダー ファイルを作成する

  1. [表示(V)] -> [ソリューション エクスプローラ(P)] をクリックします。

  2. [ヘッダー ファイル]を右クリックし、[追加(D)] -> [新しい項目(W)...] をクリックします。

  3. [ヘッダーファイル (.h)] をクリックし、[名前(N)] に stdafx.h と入力して [追加(A)]をクリックします。

  4. stdafx.hが開いているはずなので、以下のように入力して保存します。

stdafx.h
#pragma once
#include <Siv3D.hpp>

C++ ファイルを作成する

  1. [表示(V)] -> [ソリューション エクスプローラ(P)] をクリックします。

  2. [ソース ファイル]を右クリックし、[追加(D)] -> [新しい項目(W)...] をクリックします。

  3. [C++ ファイル (.cpp)] をクリックし、[名前(N)] に stdafx.cpp と入力して [追加(A)]をクリックします。

  4. stdafx.cppが開いているはずですが、何も入力しません。

プロジェクトのプロパティを変更する

  1. [プロジェクト(P)] -> [(プロジェクト名) のプロパティ(P)...] をクリックします。

  2. 左のツリーの [構成プロパティ] -> [C/C++] -> [プリコンパイル済みヘッダー] をクリックします。

  3. [構成(C)] が [すべての構成]になっていることを確認し、[プリコンパイル済みヘッダー] を [使用 (/Yu)] に変更します。

  4. 左のツリーの [詳細設定]をクリックします。

  5. [必ず使用されるインクルード ファイル] に stdafx.h と入力し、 [OK]をクリックします。

stdafx.cppのプロパティを変更する

  1. [表示(V)] -> [ソリューション エクスプローラ(P)] をクリックします。

  2. stdafx.cpp を右クリックし、プロパティ(R)をクリックします。

  3. 左のツリーの [構成プロパティ] -> [C/C++] -> [プリコンパイル済みヘッダー] をクリックします。

  4. [構成(C)] が [すべての構成]になっていることを確認し、[プリコンパイル済みヘッダー] を [作成 (/Yc)] に変更して、 [OK]をクリックします。

ビルドする

  1. いつも通りビルドしてみます。1回目なのでビルド時間は通常と変わらないはずです。
  2. Main.cppの一部を変えてもう一度ビルドしてみましょう。ビルドログを確認するとstdafx.cppがビルドされなくなくなっており短い時間で起動したはずです。

補足・蛇足

  • クリーンしたあと1回目のビルド時間は通常と変わりません。
  • ソースファイル(Main.cpp等)には#include <Siv3D.hpp>を書かなくても動きます。
  • 手順が多いのでSiv3Dのテンプレートに入れて欲しいです(要望)

明日は@Mitsugoro32さんです。