Partager via


/Yd (Placer les informations de débogage dans un fichier objet)

Mise à jour : novembre 2007

Place des informations de débogage complètes dans tous les fichiers objets créés à partir d'un fichier d'en-tête précompilé (.pch) si cette option est associée aux options /Yc et /Z7. Désapprouvé.

/Yd

Notes

L'option /Yd est désapprouvée dans Visual C++ 2005 ; Visual C++ prend désormais en charge plusieurs objets qui écrivent dans un fichier .pdb unique, utilisez plutôt /Zi. Pour plus d'informations, consultez Options du compilateur désapprouvées dans Visual C++ 2005.

À moins que vous deviez distribuer une bibliothèque contenant des informations de débogage, utilisez l'option /Zi plutôt que /Z7 et /Yd.

Le stockage d'informations de débogage complètes dans chaque fichier .obj est nécessaire uniquement pour la distribution de bibliothèques contenant des informations de débogage. Il ralentit la compilation et demande beaucoup d'espace disque. Quand les options /Yc et /Z7 sont utilisées sans /Yd, le compilateur stocke les informations de débogage communes dans le premier fichier .obj créé à partir du fichier .pch. Le compilateur n'insère pas ces informations dans les autres fichiers .obj créés ensuite à partir du fichier .pch ; il insère à la place des références croisées aux informations. Quel que soit le nombre de fichiers .obj qui utilisent le fichier .pch, un seul fichier .obj contient les informations de débogage communes.

Même si ce comportement par défaut se traduit par des délais de génération plus courts et une utilisation moindre de l'espace disque, il n'est pas souhaitable si une modification, même minime, requiert la régénération du fichier .obj contenant les informations de débogage communes. Dans ce cas, le compilateur doit régénérer tous les fichiers .obj qui contiennent des références croisées au fichier .obj d'origine. En outre, si un fichier .pch commun est utilisé par différents projets, il est difficile de garantir la fiabilité des références croisées à un seul fichier .obj.

Pour plus d'informations sur les en-têtes précompilés, consultez :

Pour définir cette option du compilateur dans l'environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, consultez Comment : ouvrir les pages de propriétés d'un projet.

  2. Cliquez sur le dossier C/C++.

  3. Cliquez sur la page de propriétés Ligne de commande.

  4. Spécifiez l'option du compilateur dans la zone Options supplémentaires.

Pour définir cette option du compilateur par programme

Exemples

Prenons le cas de deux fichiers de base, F.cpp et G.cpp, chacun contenant ces instructions #include :

#include "windows.h"
#include "etc.h"

La ligne de commande suivante crée le fichier d'en-tête précompilé ETC.pch et le fichier objet F.obj :

CL /YcETC.H /Z7 F.CPP

Le fichier objet F.obj comprend des informations sur les types et les symboles pour WINDOWS.h et ETC.h (et tous les autres fichiers d'en-tête qu'ils incluent). Vous pouvez à présent utiliser l'en-tête précompilé ETC.pch pour compiler le fichier source G.cpp :

CL /YuETC.H /Z7 G.CPP

Le fichier objet G.obj ne comprend pas les informations de débogage pour l'en-tête précompilé, mais uniquement des références à ces informations figurant dans le fichier F.obj. Notez que vous devez établir un lien avec le fichier F.obj.

Si votre en-tête précompilé n'a pas été compilé avec /Z7, vous pourrez l'utiliser dans des compilations ultérieures avec l'option /Z7. Cependant, les informations de débogage sont placées dans le fichier objet en cours, et les symboles locaux des fonctions et des types définis dans l'en-tête précompilé ne seront pas disponibles pour le débogueur.

Voir aussi

Référence

Options du compilateur

Définition des options du compilateur