Erreur des outils Éditeur de liens LNK1211

informations de type précompilées introuvables ; 'filename' non lié ou remplacé

Le fichier objet de nom de fichier , compilé à l’aide de /Yc, n’a pas été spécifié dans la commande LINK ou a été remplacé.

Si vous créez une bibliothèque de débogage qui utilise des en-têtes précompilés et si vous spécifiez /Yc et /Z7, Visual C++ génère un fichier objet précompilé qui contient des informations de débogage. L’erreur se produit uniquement lorsque vous stockez le fichier objet précompilé dans une bibliothèque, utilisez la bibliothèque pour générer une image exécutable et que les fichiers objet référencés n’ont aucune référence transitive à l’une des fonctions que le fichier objet précompilé définit.

Il existe deux méthodes pour contourner cette situation :

  • Spécifiez l’option du compilateur /Yd pour ajouter les informations de débogage de l’en-tête précompilé à chaque module objet. Cette méthode est moins souhaitable, car elle produit généralement des modules d’objet volumineux qui peuvent augmenter le temps nécessaire pour lier l’application.

  • Spécifiez /Yl et passez le nom d’une chaîne arbitraire lorsque vous créez un fichier d’en-tête précompilé qui ne contient aucune définition de fonction. Cela permet au compilateur de créer un symbole dans le fichier objet précompilé et d’émettre une référence à ce symbole dans chaque fichier objet qui a utilisé le fichier d’en-tête précompilé associé au fichier objet précompilé.

Lorsque vous compilez un module avec /Yc et /Yl, le compilateur crée un symbole similaire à __@@_PchSym_@00@...@symbol_name, où les points de suspension (...) représentent une chaîne de caractères générée par le compilateur et les stocke dans le module objet. Tout fichier source que vous compilez avec cet en-tête précompilé fait référence au symbole spécifié, ce qui amène l’éditeur de liens à inclure le module objet et ses informations de débogage à partir de la bibliothèque.