Question

    

Cette question a déjà une réponse ici:

         

Je construis un projet dans Visual C ++ 2008, qui est un exemple application MFC pour une bibliothèque de classes C ++ statique que je vais utiliser dans mon projet bientôt. Alors que la construction de la configuration de débogage, j'obtiens ce qui suit:

  

LNK4098 d'avertissement: defaultlib des conflits 'MSVCRT' avec l'utilisation d'autres libs; utilisation / NODEFAULTLIB: bibliothèque

Après avoir utilisé l'option recommandée (en ajoutant « msvcrt » au champ « Ignorer la bibliothèque spécifique » dans les paramètres de l'éditeur de liens de projet pour la configuration de débogage), les liens du programme et fonctionne très bien. Cependant, je voudrais savoir pourquoi ce conflit survenu, pourquoi dois-je ignorer une bibliothèque critique, et si je dois attendre à des problèmes plus tard, je si ajouter l'ignorer, ou ce qui se passe si je ne le fais pas (parce que le programme construit de toute façon).

En même temps, la configuration de sortie met en garde contre:

  

LNK4075 d'avertissement: ignorant '/ EDITANDCONTINUE' en raison de '/ OPT: ICF' spécification
  avertissement LNK4098: defaultlib des conflits « MSVCRTD » avec l'utilisation d'autres libs; utilisation / NODEFAULTLIB: bibliothèque

Je devine que le suffixe « D » signifie que c'est la version de débogage de VC ++ runtime, aucune idée pourquoi ceci se sert cette fois-ci. Quoi qu'il en soit, en ajoutant « msvcrtd » à l'ignorer champ provoque beaucoup d'erreurs de liaison de la forme:

  

erreur LNK2001: symbole externe non résolu __imp ___ CrtDbgReportW

Toute idée très appréciée.

Était-ce utile?

La solution

Cela se produit généralement lorsque vous établissez un lien avec une bibliothèque statique qui utilise une autre version d'exécution du VC (réglage de C++ ->Code Generation->Runtime Library dans les propriétés du projet).

Autres conseils

Ce général est arrivé à moi quand j'étais (par inadvertance) mélange des saveurs différentes de la RTL, comme (comme il semble être dans votre cas) et de débogage Release ou MT et ST.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top