プリコンパイル済みヘッダファイル

インテル® C++ コンパイラは、次のオプションを使用してコンパイル時間を大幅に短縮するプリコンパイル済みヘッダ (PCH) ファイルをサポートします:

警告

ソースでリストされたヘッダファイルの構成方法によっては、これらのオプションはコンパイル時間を増大させることもあります。PCH オプションを使用してコンパイル時間を最適化する方法については、「ソースファイルの管理」を参照してください。

-pch

-pch オプションは、適切な PCH ファイルを使用するようにコンパイラに指示します。利用可能な PCH ファイルがない場合、sourcefile.pchi として作成されます。このオプションは、例 1 のように、複数のソースファイルをサポートします:

例 1 のコマンドライン:
prompt>icpc -pch source1.cpp source2.cpp

.pchi ファイルが存在しない場合の例 1 の出力
"source1.cpp": creating precompiled header file "source1.pchi"
"source2.cpp": creating precompiled header file "source2.pchi"

.pchi ファイルが存在する場合の例 1 の出力
"source1.cpp": using precompiled header file "source1.pchi"
"source2.cpp": using precompiled header file "source2.pchi"

ヘッダファイルが同じ場合、-pch オプションは他のソースから作成された PCH ファイルを使用します。例えば、-pch を使用して source1.cpp をコンパイルすると、source1.pchi が作成されます。その後、-pch を使用して source2.cpp をコンパイルすると、コンパイラは同じヘッダを検出した場合 source1.pchi を使用します。

-create_pch

コンパイラが PCH ファイル (filename) を作成するようにするには、-create_pch filename オプションを使用します。このオプションを使用するときは次の点に注意してください:

例 2 のコマンドライン:
prompt>icpc -create_pch /pch/source32.pchi source.cpp

例 2 の出力:
"source.cpp": creating precompiled header file "/pch/source32.pchi"

-use_pch filename

このオプションは、filename で指定された PCH ファイルを使用するようにコンパイラに指示します。このオプションは -create_pch filename と同時に使用することはできません。-use_pch filename オプションはフルパス名をサポートします。すべてのソースファイルが同じ .pchi ファイルを使用している場合は複数のソースファイルをサポートします。

例 3 のコマンドライン:
prompt>icpc -use_pch /pch/source32.pchi source.cpp

例 3 の出力:
"source.cpp": using precompiled header file /pch/source32.pchi

-pch_dir dirname

PCH ファイルへのパス (dirname) を指定するには、-pch_dir dirname オプションを使用します。このオプションは、-pch-create_pch filename、および -use_pch filename オプションとともに使用することができます。

例 4 のコマンドライン:
prompt>icpc -pch -pch_dir /pch source32.cpp

例 4 の出力:
"source32.cpp": creating precompiled header file /pch/source32.pchi

ソースファイルの管理

ソースファイルの多くが共通のヘッダファイルをインクルードしている場合、共通のヘッダファイルを最初に、続けて #pragma hdrstop ディレクティブを記述します。このプラグマはコンパイラに PCH ファイルの生成を停止するように指示します。例えば、source1.cppsource2.cpp、および source3.cpp がすべて common.h をインクルードしている場合、common.h の後に #pragma hdrstop を記述してコンパイル時間を最適化します。

#include "common.h"

#pragma hdrstop

#include "noncommon.h"

-pch オプションを使用してコンパイルした場合:

prompt>icpc -pch source1.cpp source2.cpp source3.cpp

コンパイラは 3 つのソースファイルについて 1 つの PCH ファイルを生成します:

"source1.cpp": creating precompiled header file "source1.pchi"

"source2.cpp": using precompiled header file "source1.pchi"

"source3.cpp": using precompiled header file "source1.pchi"

#pragma hdrstop を使用しないと、common.h に続いて異なるヘッダが記述されている場合、ソースファイルごとに異なる PCH ファイルが作成され、コンパイル時間は長くなります。#pragma hdrstop は、これらの PCH オプションを使用しないコンパイルには影響しません。