10

私はMSDNのドキュメントを読んでいましたが、最終的には、それらの間の実際的な違いは何かを明確にしていませんでした。両方とも、すべての* .cppファイルの先頭にstdafx.hを追加する必要があるようです。Visual Studioで "プリコンパイル済みヘッダーの作成"(/ Yc)と "プリコンパイル済みヘッダーの使用"(/ Yu)の違いは何ですか?

私はVS2008を使用しています。

誰かが明確なことを助けることができますか?

+0

を「作成」に値を設定している間適用

  • をヒット。 * 1つは、プリコンパイルされたヘッダーを作成するために使用され、もう1つは**使用する*(つまり、コンパイラーに標準ヘッダーを読み込ませ、プリコンパイルされたヘッダーを生成させるためのもの、コンパイラがプリコンパイルされたヘッダを生成せず、むしろそれを使用しないようにしてください。 –

  • 答えて

    11

    まず、プリコンパイル済みヘッダーの目的を理解しておく必要があると思います。大規模なプロジェクトでは、たとえば単一のクライアントエクステンションに必要なすべてのヘッダーを処理するには時間がかかることがあります。そのため、.pchファイルをライブラリと共に配布する方が好きな人もいます。 .pchファイルを生成するには、/Ycコンパイラフラグを使用し、ライブラリを使用する人は/Yuフラグを設定します。詳細は、hereおよびhereを参照してください。

    のVisual StudioでPCHファイルを使用する方法の
    +0

    ライブラリからPCHファイルを取得するべきではありません。ライブラリ開発時に使用されるヘッダーは、おそらくコンシューマーコードで必要とされるヘッダとはかなり異なるでしょう。 –

    +0

    @BenVoigt確かに、これはおそらく一般的な方法ではありません。巨大でクライアントエクステンションは厳密にこの会社によって提供されたものから派生したものです。この回答が改善する必要があると思ったら編集を提案してください。 –

    21

    短い要約は:

    • プロジェクト内のすべてのcppファイルはstdafx.hを含める必要が
    • を選択し、プロジェクト内の(あなたが望むなら、何か他のものに変更することができます)ソリューションエクスプローラとProperties -> C++ -> Precompiled Headersに 'Use used'に ​​'プリコンパイル済みヘッダーの作成/使用'を設定します。プロパティページがまだソリューションエクスプローラでstdafx.cpp選択を示すとドキュメントへのリンクは関連するかもしれない
    +2

    +1明確でシンプルでポイント回答。 – CodeAngry

    関連する問題