Quelle est la différence entre «Créer un en-tête précompilé» (/ Yc) et «Utiliser un en-tête précompilé» (/ Yu) dans Visual Studio?

J’ai lu la documentation dans MSDN, mais je n’ai finalement pas compris quelle était la différence pratique entre eux. Les deux semblent exiger que stdafx.h soit ajouté en haut de chaque fichier * .cpp.

J’utilise VS2008.

Quelqu’un peut-il aider à clarifier les choses?

Eh bien, je pense que vous devez d’abord comprendre le but des en-têtes précompilés. Dans les grands projets, par exemple, le traitement de tous les en-têtes requirejs par une seule extension client peut prendre un certain temps, aussi certaines personnes préfèrent-elles dissortingbuer les fichiers .pch avec leurs bibliothèques. Afin de générer les fichiers .pch, vous utilisez l’ /Yc compilateur et la personne qui souhaite utiliser votre bibliothèque définira l’indicateur /Yu . Voir ici et ici pour plus de détails.

Résumé succinct de l’utilisation des fichiers PCH dans Visual Studio:

  • Tous les fichiers cpp du projet doivent inclure stdafx.h (vous pouvez le changer si vous le souhaitez).
  • Sélectionnez un projet dans l’Explorateur de solutions et dans Properties -> C++ -> Precomstackd Headers définissez ‘Créer / Utiliser les en-têtes précompilés’ sur ‘Utiliser’. Cliquez sur Appliquer
  • Alors que les pages de propriétés sont toujours affichées, sélectionnez stdafx.cpp dans l’explorateur de solutions et définissez la valeur sur “Créer”.