conflit de bibliothèques d'importations

conflit de bibliothèques d'importations - C++ - Programmation

Marsh Posté le 28-03-2005 à 19:12:42    

Bonjour , j'ai un problème de conflit de bibliothèque. Lorsque j'inclus une bibliothèque .lib, elle entre en conflit avec les autres bibliothèques par défaut. Il y a des noms résolus qui sont dans ma librairie que jai inclus et celle que vs .net inclut par défaut. Je cherche comment dire à vs. net que ma librairie est prioritaire dans la configuration du projet. J'ai essayé d'ignorer toutes les librairies par défaut avec l'option "Toutes bibliothèques par défaut ignorées" dans Éditeur de liens --> Entrée. (J'ai mis cette option à oui) Mais quand je met cette option à oui, il ne va pas trouver certains symboles. Donc il fait des erreurs de noms qui manquent...
 
J'ai essayé aussi l'option "Bibliotheque ignorée" : msvcprt.lib libcpd.lib  LIBCD.lib
 
j'ai mis les librairies qui entrent en conflit avec ma librairie, mais vs.net ne fait rien...on dirait qu'il ignore cette option. ça affiche toujours les mêmes erreurs.
 
Voici les erreurs:
 
...
LIBCD.lib(crt0init.obj) : error LNK2005: ___xi_a déjà défini(e) dans MSVCRT.lib(cinitexe.obj)
LIBCD.lib(lconv.obj) : error LNK2005: _localeconv déjà défini(e) dans MSVCRT.lib(MSVCR71.dll)
LIBCD.lib(winxfltr.obj) : error LNK2005: __XcptFilter déjà défini(e) dans MSVCRT.lib(MSVCR71.dll)
LIBCD.lib(crt0.obj) : error LNK2005: _mainCRTStartup déjà défini(e) dans MSVCRT.lib(crtexe.obj)
LIBCD.lib(crt0.obj) : error LNK2005: __amsg_exit déjà défini(e) dans MSVCRT.lib(MSVCR71.dll)
LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'MSVCRT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'LIBCD' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
Release/Test.exe : fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés
 

Reply

Marsh Posté le 28-03-2005 à 19:12:42   

Reply

Marsh Posté le 28-03-2005 à 20:52:51    

kamal102 a écrit :

Bonjour , j'ai un problème de conflit de bibliothèque. Lorsque j'inclus une bibliothèque .lib, elle entre en conflit avec les autres bibliothèques par défaut. Il y a des noms résolus qui sont dans ma librairie que jai inclus et celle que vs .net inclut par défaut. Je cherche comment dire à vs. net que ma librairie est prioritaire dans la configuration du projet. J'ai essayé d'ignorer toutes les librairies par défaut avec l'option "Toutes bibliothèques par défaut ignorées" dans Éditeur de liens --> Entrée. (J'ai mis cette option à oui) Mais quand je met cette option à oui, il ne va pas trouver certains symboles. Donc il fait des erreurs de noms qui manquent...
 
J'ai essayé aussi l'option "Bibliotheque ignorée" : msvcprt.lib libcpd.lib  LIBCD.lib
 
j'ai mis les librairies qui entrent en conflit avec ma librairie, mais vs.net ne fait rien...on dirait qu'il ignore cette option. ça affiche toujours les mêmes erreurs.
 
Voici les erreurs:
 
...
LIBCD.lib(crt0init.obj) : error LNK2005: ___xi_a déjà défini(e) dans MSVCRT.lib(cinitexe.obj)
LIBCD.lib(lconv.obj) : error LNK2005: _localeconv déjà défini(e) dans MSVCRT.lib(MSVCR71.dll)
LIBCD.lib(winxfltr.obj) : error LNK2005: __XcptFilter déjà défini(e) dans MSVCRT.lib(MSVCR71.dll)
LIBCD.lib(crt0.obj) : error LNK2005: _mainCRTStartup déjà défini(e) dans MSVCRT.lib(crtexe.obj)
LIBCD.lib(crt0.obj) : error LNK2005: __amsg_exit déjà défini(e) dans MSVCRT.lib(MSVCR71.dll)
LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'MSVCRT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'LIBCD' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
Release/Test.exe : fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés


 
En haut à droite de cette page web, il y a un bouton http://forum-images.hardware.fr/themes_static/images_forum/1/recherche.gif.  
 
Clique dessus, et recherche MSVCRT. Si ça ne répond pas à tes problèmes, on t'aidera un peu plus.


Message édité par Lam's le 28-03-2005 à 20:53:13
Reply

Marsh Posté le 28-03-2005 à 21:45:35    

bonjour, jai trouvé le probleme :
 
Il faut simplement vérifier que l'application et la bibliohtèque utilisent la même version de la RTL :  
 
Options du projet -> C/C++ -> Génération de code -> Bibliothèque runtime

Reply

Marsh Posté le 22-04-2005 à 00:43:54    

Bonjour, j'ai le meme probleme en fait.
OU est ce qu'on peut modifier ces version stp!

Reply

Marsh Posté le 22-04-2005 à 10:15:06    

Citation :

Options du projet -> C/C++ -> Génération de code -> Bibliothèque runtime


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 22-04-2005 à 12:40:41    

Oui dans Generation de code il me propose :
use run-time library:  
-single-threaded
-Multithreaded
-Multithreaded DLL
-Debug Multithreaded
-Debug Multithreaded DLL
-Debug single-threaded
 
Lequel choisir? Et comment je peux savoir quel bibliotheque je dois installer pour faire marcher mon projet(desolé mais je suis un VRAI debutant)
 
Merci  
 
-

Reply

Marsh Posté le 22-04-2005 à 13:02:09    

Et t'as fait une recherche sur le forum, comme je l'ai écrit au-dessus ? Parce qu'on l'a quand même souvent expliqué ça...

Reply

Marsh Posté le 22-04-2005 à 18:31:48    

Il faut choisir le même pour tous tes projets.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed