/Yl (Injecter une référence PCH pour une bibliothèque de débogage)
L’option /Yl génère un symbole unique dans un fichier d’en-tête précompilé, et une référence à ce symbole est injectée dans tous les fichiers objet qui utilisent l’en-tête précompilé.
Syntaxe
/Yl
/Ylname
/Yl-
Arguments
nom
Nom facultatif utilisé dans le cadre du symbole unique.
-
Un tiret (-) désactive explicitement l’option du compilateur /Yl .
Notes
L’option du compilateur /Yl crée une définition de symbole unique dans un fichier d’en-tête précompilé créé à l’aide de l’option /Yc . Les références à ce symbole sont automatiquement injectées dans tous les fichiers qui incluent l’en-tête précompilé à l’aide de l’option du compilateur /Yu . L’option /Yl est activée par défaut lorsque /Yc est utilisé pour créer un fichier d’en-tête précompilé.
L’option /Ylname est utilisée pour créer un symbole identifiable dans le fichier d’en-tête précompilé. Le compilateur utilise l’argument de nom dans le cadre du nom de symbole décoré qu’il crée, similaire à celui où __@@_PchSym_@00@...@name
les points de suspension (...) représentent une chaîne de caractères générée par le compilateur unique. Si l’argument de nom est omis, le compilateur génère automatiquement un nom de symbole. Normalement, vous n’avez pas besoin de connaître le nom du symbole. Toutefois, lorsque votre projet utilise plusieurs fichiers d’en-tête précompilés, l’option de nom /Ylpeut être utile pour déterminer quels fichiers objet utilisent l’en-tête précompilé. Vous pouvez utiliser le nom comme chaîne de recherche pour rechercher la référence de symbole dans un fichier de vidage.
/Yl- désactive le comportement par défaut et ne place pas de symbole d’identification dans le fichier d’en-tête précompilé. Les fichiers compilés qui incluent cet en-tête précompilé n’obtiennent pas de référence de symbole commun.
Quand /Yc n’est pas spécifié, toute option /Yl n’a aucun effet, mais si elle doit correspondre à une option /Yl passée lorsque /Yc est spécifié.
Si vous utilisez les options /Yl-, /Yc et /Z7 pour générer un fichier d’en-tête précompilé, les informations de débogage sont stockées dans le fichier objet du fichier source utilisé pour créer l’en-tête précompilé, plutôt qu’un fichier .pdb distinct. Si ce fichier objet fait ensuite partie d’une bibliothèque, LNK1211 erreurs ou LNK4206 avertissements peuvent se produire dans les builds qui utilisent cette bibliothèque et le fichier d’en-tête précompilé, si le fichier source utilisé pour créer le fichier d’en-tête précompilé ne définit aucun symbole lui-même. L’éditeur de liens peut exclure le fichier objet du lien, ainsi que les informations de débogage associées, quand rien dans le fichier objet n’est référencé dans le client de bibliothèque. Pour résoudre ce problème, spécifiez /Yl (ou supprimez l’option /Yl- ) lorsque vous utilisez /Yc pour créer le fichier d’en-tête précompilé. Cela garantit que le fichier objet de la bibliothèque qui contient les informations de débogage est lié dans votre build.
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
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.
Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.
Ajoutez l’option du compilateur de noms /Yldans la zone Options supplémentaires. Sélectionnez OK pour enregistrer vos modifications.
Pour définir cette option du compilateur par programmation
- Consultez AdditionalOptions.
Voir aussi
Options du compilateur MSVC
Syntaxe de la ligne de commande du compilateur MSVC