2017-09-02 4 views
0

.cppファイルにint main() {}を含むReleaseモードのプロジェクトをビルドすると、このプロジェクトのプロファイリングガイド最適化のためにリンカがデータベースファイルを作成する必要があるかのように、/PGD:"C:\Users\*****\Documents\Visual Studio\Projects\solution name\Release\project name.pgd"というオプションがConfiguration Properties > Linker > Command Lineに表示されます。リンカオプション/ LTCGだけを使用すると、Visual Studioでリンカコマンドラインに/ PGDオプションが表示されるのはなぜですか?

しかし、リリースビルドでリンカによって使用される/LTCGオプションだけで/LTCGない/LTCG:PGINSTRUMENTであるとして、それは明らかに、ないケースです。これを裏付けるために、上記のReleaseディレクトリにある.pgdファイルがないことを確認できます。

なぜ、Visual Studioではプロジェクトのコマンドラインにこのオプション(/ PGD)がありますか?

P.S.私はこのシミュレーションにVS2017を使用していますが、結果はVisual Studioの以前のバージョンで同じになるはずです。

+0

多分[このMS docs](https://docs.microsoft.com/en-us/cpp/build/reference/pgd-specify-database-for-profile-guided-optimizations)記事は助けになるかもしれません。 – Ron

+0

それは多かれ少なかれ私が言ったことを確認します。 '/ LTCG:PGINSTRUMENTを使用する場合、/ PGDを使用して.pgdファイルのデフォルトでない名前または場所を指定してください。 ' – Belloc

+1

このオプション*は常に値を持ち、デフォルトは$(OutDir)$(TargetName).pgdです。あなたが示した道を作り出します。設定を変更することはほとんどありません。なぜあなたがデフォルトを気に入らないのかは明らかではありません。 –

答えて

0

すべてのVisual Studioプロジェクトのデフォルトパスはで、デフォルトでは/PGDに設定されています。 /LTCG:PG*オプションを使用してPGOを明示的に有効にしない限り、この設定は無効です。

関連する問題