1

次の方法を使用して、ビルドを高速化するために .pch を再利用しようとしました。

  1. stdafx.cpp で /Yc を使用して、フォルダーに .pch ファイルを作成します。
  2. プロジェクトで stdafx.cpp を除外し、リンク オプションを変更します。

私のマシンでは成功しましたが、別のマシンでは失敗し、次のエラー メッセージが表示されました: error C2011: '***' : 'struct' type redefinition

まず最初に、.pch ファイルがマシンに依存するかどうかを尋ねたいと思いますか? 次に、上記のアプローチは実行可能ですか?

ありがとう!

4

1 に答える 1

3

プリコンパイル済みヘッダーは、Visual Studio 2008 SP1 まではマシン固有にすることができます (こちらから)。

プリコンパイル済みヘッダー ファイルには、特定の時点までのコンパイルの「状態」が格納されます。その状態情報は、後続のコンパイラ呼び出しで再利用できるため、ビルドのスループットが大幅に向上します。過去 15 年間、当社のコンパイラはプリコンパイル済みヘッダーをディスクに保存し、それらを 99.999% の信頼性と大幅なパフォーマンス向上で仮想メモリに直接再読み込みしてきました。ただし、トレードオフは、アーキテクチャの脆弱性の程度でした。

PCH ファイル自体には内部ポインタが含まれているため、作成された仮想メモリ内のまったく同じアドレスにロードする必要があります

于 2010-04-08T06:43:40.003 に答える