VS8 で Profile Guided Optimization (PGO) を使用しようとしています。問題の DLL を計測した後、アプリケーションがインストールされているマシンにコピーして、トレーニング シナリオを実行します。次に、pgcトレーニング ファイルを開発ボックスにコピーして戻すと、次のエラーが発生します。
1>StdAfx.obj: 致命的なエラー LNK1270: 無効なファイル。タイムスタンプが /LTCG:PGINSTRUMENT にリンクされたファイルと一致しません
このエラーのMSDNエントリには、次のように記載されています。
無効なファイル; タイムスタンプが /LTCG:PGINSTRUMENT でリンクされたファイルと一致しない /LTCG:PGINSTRUMENT を指定するときにリンカーに渡される同じファイルを、/LTCG:PGOPTIMIZE を指定するときにも渡す必要があります。
/LTCG:PGOPTIMIZE では、入力が /LTCG:PGINSTRUMENT フェーズと同一である必要があります。
この警告を解決するには、/LTCG:PGINSTRUMENT を実行し、すべてのテスト実行をやり直して、/LTCG:PGOPTIMIZE を実行するか、/LTCG:PGOPTIMIZE の代わりに /LTCG:PGUPDATE を使用して最適化されたイメージを作成します。
テストを再実行しても問題は解決しません (ただし、stdafx.obj ではなく、他のファイルで表示されることがあります)。
使用/LTCG:PGUPDATE
は機能しますが、エラーの原因や失敗の原因を理解したいと思います( MSDN PGO ページに関連するものは見つかりませんPGUPDATE
) 。PGOPTIMIZE