-1

オプションを/Yuに設定すると、更新が必要かどうかをチェックせずに、存在するすべてのpchを使用するようです。つまり、プリコンパイル済みヘッダーのリストを保持し、それらのファイルが最後から更新されているかどうかをチェックします。それらがプリコンパイルされた時間。

しかし、/ Ycを実行すると、プロジェクトをビルドするたびに再プリコンパイルされます。

Visual C ++がこれらの動作を私が思うほどうまく処理するのか、それとも.hファイルなどを編集するのを間違えているのかはよくわかりません。

したがって、ヘッダーを更新するたびに、/ Ycを設定し、ビルドし、/ Yuにリセットし、反復を続けますが、/ Ycにリセットし、再構築してから、/ YUにリセットする必要がありますか?

4

1 に答える 1

0

プリコンパイルで使用するヘッダーを含む 1 つのファイルを設定し/Yc、必要に応じて pch ファイルを生成します (つまり、pch ファイルはヘッダーに比べて古くなっています)。次に、それを含む他のファイルを use に設定する/Yuと、最初のファイルが生成するプリコンパイル済みヘッダーが使用されます。

Visual Studio ウィザードを使用して、プリコンパイル済みヘッダーを含むコンソール プロジェクトを生成すると、これが実際に行われていることがわかります。stdafx.cppファイルには が含まれてstdafx.hおり/Yc、pch ファイルを生成するように設定されています。次に、main.cppファイルにも含まれstdafx.hますが、/Yu設定されているため、pch ファイルを使用します。

(ドキュメントのプリコンパイル済みヘッダー セクションは、最初は少しわかりにくかったのですが、プリコンパイル済みヘッダーをセットアップして、それらが機能しているのを確認すると、もう少し意味があり始めました。)

于 2012-08-25T12:23:55.813 に答える