.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の以前のバージョンで同じになるはずです。
多分[このMS docs](https://docs.microsoft.com/en-us/cpp/build/reference/pgd-specify-database-for-profile-guided-optimizations)記事は助けになるかもしれません。 – Ron
それは多かれ少なかれ私が言ったことを確認します。 '/ LTCG:PGINSTRUMENTを使用する場合、/ PGDを使用して.pgdファイルのデフォルトでない名前または場所を指定してください。 ' – Belloc
このオプション*は常に値を持ち、デフォルトは$(OutDir)$(TargetName).pgdです。あなたが示した道を作り出します。設定を変更することはほとんどありません。なぜあなたがデフォルトを気に入らないのかは明らかではありません。 –