次の方法で共有


/Yc および /Yu の一貫性規則

/Yc または /Yu を使って作成されたプリコンパイル済みヘッダーを使用する場合、コンパイラは、現在のコンパイル環境と .pch ファイル作成時の状態を比較します。一貫したコンパイラ オプションやプラグマなどを指定して、現在のコンパイル環境が前のコンパイル環境と一致するようにしてください。矛盾する箇所が検出されると、警告が出力されます。矛盾箇所の内容が示される場合もあります。ただし、このような警告は単に矛盾点を示しているだけなので、必ずしも .pch ファイルに問題があるとは限りません。以降のセクションでは、プリコンパイル済みヘッダーに対する一貫性の要件について説明します。

コンパイラ オプションの一貫性

次の表は、プリコンパイル済みヘッダーの使用時に矛盾が発生し、警告メッセージが出力される可能性のあるコンパイラ オプションをまとめたものです。

オプション

名前

規則

/D

定数およびマクロの定義

プリコンパイル済みヘッダー作成時のコンパイルと現在のコンパイルで、同じであることが必要です。定義されている定数の状態はチェックされませんが、ファイルが変更された定数の値に依存する場合、予測できない結果を生じることがあります。

/E、/EP

プリプロセッサ出力を標準出力にコピー

プリコンパイル済みヘッダーは、/E または /EP オプションでは動作しません。

/Fr、/FR

Microsoft ソース ブラウザー情報を生成

/Fr または /FR オプションが /Yu オプションで有効になるには、プリコンパイル済みヘッダーの作成時にも有効であったことが必要です。そのプリコンパイル済みヘッダーを使用する以降のコンパイルでも、ソース ブラウザー情報が生成されます。ブラウザー情報は、単一の .sbr ファイルに格納され、CodeView 情報と同じ方法でほかのファイルから参照されます。ソースブラウザー情報の場所は、上書きできません。

/GA、/GD、/GE、/Gw、/GW

Windows プロトコル オプション

プリコンパイル済みヘッダー作成時のコンパイルと現在のコンパイルで、同じであることが必要です。このオプションが異なると、警告メッセージが出力されます。

/Zi

詳細なデバッグ情報の生成

プリコンパイル済みヘッダーの作成時にこのオプションが有効だった場合、プリコンパイルを使用する以降のコンパイルでそのデバッグ情報を使用できます。プリコンパイル済みヘッダーの作成時にこのオプションが有効ではなかった場合、プリコンパイルを使用する以降のコンパイルと /Zi オプションで警告メッセージが出力されます。デバッグ情報は現在のオブジェクト ファイルに取り込まれ、プリコンパイル済みヘッダーに定義されたローカル シンボルをデバッガーで使用できなくなります。

[!メモ]

プリコンパイル済みヘッダー機能は、C および C++ のソース ファイル専用です。

インクルード パスの一貫性

/Yc で作成されるプリコンパイル済みヘッダーには、.pch ファイルの作成時に有効だったインクルード パスに関する情報は含まれません。.pch ファイルを使用すると、現在のコンパイルで指定されたインクルード パスが必ず使用されます。

ソース ファイルの一貫性

プリコンパイル済みヘッダーを使用する場合、hdrstop プラグマより前に現れるすべてのプリプロセッサ ディレクティブ (プラグマを含む) が無視されます。このようなプリプロセッサ ディレクティブで指定されるコンパイルは、プリコンパイル済みヘッダー ファイルの作成時に使用されたコンパイルと同じであることが必要です。

プラグマの一貫性

プリコンパイル済みヘッダーのコンパイル中に処理されるプラグマは、通常、プリコンパイル済みヘッダーを後で使用するファイルに反映されます。次のプラグマは .pch ファイル内のコードだけに反映され、後で .pch ファイルを使用するコードには反映されません。

コメント

page

subtitle

Linesize

pagesize

Title

Message

skip

 

次のプラグマは、プリコンパイル済みヘッダーの一部として保持され、このヘッダー ファイルを使った以降のコンパイルに反映されます。

alloc_text

機能性

optimize

auto_inline

inline_depth

Pack

check_pointer

inline_recursion

same_seg

check_stack

intrinsic

警告

code_seg

loop_opt

 

data_seg

native_caller

 

参照

関連項目

プリコンパイル済みヘッダーの一貫性規則

/Yc (プリコンパイル済みヘッダー ファイルの作成)

/Yu (プリコンパイル済みヘッダー ファイルの使用)