Si vous créez un projet en mode Release
contenant uniquement un fichier .cpp
avec int main() {}
, vous verrez dans Configuration Properties > Linker > Command Line
l'option /PGD:"C:\Users\*****\Documents\Visual Studio\Projects\solution name\Release\project name.pgd"
, comme si l'éditeur de liens devait créer un fichier de base de données pour une optimisation guidée par profil pour ce projet.Pourquoi Visual Studio affiche-t-il l'option/PGD dans la ligne de commande de l'éditeur de liens lorsque j'utilise uniquement l'option de l'éditeur de liens/LTCG?
Mais c'est clairement pas le cas, l'option /LTCG
utilisée par l'éditeur de liens dans une version release est juste /LTCG
et non /LTCG:PGINSTRUMENT
. Pour corroborer cela, on peut vérifier l'absence de tout fichier .pgd
dans le répertoire Release
mentionné ci-dessus.
Pourquoi Visual Studio at-il cette option (/ PGD) dans la ligne de commande du projet?
P.S. J'utilise VS2017 pour cette simulation, mais je crois que le résultat devrait être le même dans les versions précédentes de Visual Studio.
Peut-être que [cet article MS] (https://docs.microsoft.com/en-us/cpp/build/reference/pgd-specify-database-for-profile-guided-optimizations) article peut être utile. – Ron
Cela confirme plus ou moins ce que j'ai dit. 'Lorsque vous utilisez/LTCG: PGINSTRUMENT, utilisez/PGD pour spécifier un nom ou un emplacement différent du fichier .pgd. – Belloc
Cette option * always * a une valeur, la valeur par défaut est $ (OutDir) $ (TargetName) .pgd. Produire le chemin que vous avez montré. Changer le réglage est rarement nécessaire. Il n'est pas clair pourquoi vous n'aimez pas la valeur par défaut. –