Erreur de Link (Visual C++ 2005)

Erreur de Link (Visual C++ 2005) - C++ - Programmation

Marsh Posté le 13-09-2012 à 14:13:49    

Bonjour,
 
Je suis sous Visual C++ 2005, je viens d'installer la plate forme SDK et j'obtiens cette erreur :
 
LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'MSVCRT' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library
MaLibExtern.lib(pccontr.obj) : error LNK2019: symbole externe non résolu __imp__GetUserNameA@8 référencé dans la fonction "void __cdecl ilm_061(char *,int)" (?ilm_061@@YAXPADH@Z)
D:\Mes Devs\Main\Debug\Main.exe : fatal error LNK1120: 1 externes non résolus
 
Je passe en /NODEFAULTLIB et là j'obtiens les erreurs suivantes :
 
Main.obj : error LNK2001: symbole externe non résolu __RTC_Shutdown
Main.obj : error LNK2001: symbole externe non résolu __RTC_InitBase
LINK : error LNK2001: symbole externe non résolu _wmainCRTStartup
D:\Mes Devs\Main\Debug\Main.exe : fatal error LNK1120: 3 externes non résolus
 
Je comprends pas d'où ça vient.
(je précise que je viens d'installer la plate forme SDK mais ça n'a peut-être rien à voir).
 
Merci de votre aide.
 
Bonne journée.

Reply

Marsh Posté le 13-09-2012 à 14:13:49   

Reply

Marsh Posté le 13-09-2012 à 16:09:43    

D'après la doc de VC++ l'erreur vient du fait que tu as mixé plusieurs versions incompatibles de la msvcrt (genre un fichier compilé avec la version dbug, un autre avec la version single thread, un troisième avec la version multi-threads, etc...). Ou pire des versions complètement incompatibles, genre msvcrt.dll et msvcrt80.dll.
 
Bref efface tous les fichiers objets et recompile tout. Fait gaffe, ça concerne aussi les .lib.

Reply

Marsh Posté le 17-09-2012 à 11:14:34    


Bonjour et merci,
 
j'ai supprimé tous mes .obj, j'ai nettoyé ma solution, tout recompilé, mais ça ne marche pas.
ça vient donc de la version de ma lib ? Le problème est que je n'ai pas le source de cette lib.
Donc il n'y a rien à faire ?  

Reply

Marsh Posté le 17-09-2012 à 15:36:36    

ca peut tout à fait venir de ta lib. Si tu ne peux pas la recompiler, ta seule option est d'utiliser le même type de link pour le CRT que ce qui a été utilisé pour générer ta lib.
 
Tu as plusieurs combinaison possibles : soit tu linkes avec ton CRT via une lib, soit via une DLL et dans les deux cas, tu peux linker avec la version release ou la version debug. Ca devrait pouvoir se tester assez vite


---------------
last.fm
Reply

Marsh Posté le 11-10-2012 à 14:25:54    

Bonjour et merci (et désolé pour le retard)
 
en fait j'ai recréé un projet, j'ai remis mon source, mes options de projet et ça marche,
je ne sais pas bien pourquoi mais c'est bon
 
merci
 
à bientôt

Reply

Sujets relatifs:

Leave a Replay

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