Pb error LNK2001 sous VC++ 6

redshirt Messages postés 5 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 3 mars 2003 - 12 févr. 2003 à 21:47
redshirt Messages postés 5 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 3 mars 2003 - 13 févr. 2003 à 14:17
Bonjour,

J'ai un projet sous VC 6 qui compile sur une machine en mode debug et en mode Release.
Sur une autre machine, j'arrive a compiler le meme projet en mode Debug uniquement. En mode release, j'ai des messages d'erreurs au link (sur des classes standards de visual uniquement)
Comment resoudre mon probleme ? D'avance merci.

Linking...
PwdDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall CString::operator char const *(void)const " (??BCString@@QBEPBDXZ)
SeekDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall CString::operator char const *(void)const " (??BCString@@QBEPBDXZ)
Util.obj : error LNK2001: unresolved external symbol "public: __thiscall CString::operator char const *(void)const " (??BCString@@QBEPBDXZ)
[.....]
Util.obj : error LNK2001: unresolved external symbol "public: int __thiscall CFont::GetLogFont(struct tagLOGFONTA *)" (?GetLogFont@CFont@@QAEHPAUtagLOGFONTA@@@Z)
Release/lpu.exe : fatal error LNK1120: 36 unresolved externals
Error executing link.exe.

lpu.exe - 59 error(s), 0 warning(s)

4 réponses

jonathanmcdougall Messages postés 64 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 7 mars 2003
13 févr. 2003 à 03:27
> Bonjour,
>
> J'ai un projet sous VC 6 qui compile sur une machine en mode debug et en mode Release.
> Sur une autre machine, j'arrive a compiler le meme projet en mode Debug uniquement. En mode release, j'ai des messages d'erreurs au link (sur des classes standards de visual uniquement)
> Comment resoudre mon probleme ? D'avance merci.
>

<snip>

Ces classes ont probablement certaines fonctions qui ne sont compilées qu'en mode debug. Les appelées en release résulte en une erreur de linkage.

Concernant la machine qui marche dans les deux modes, c'est probablement un implémentation différente de ces classes qui compile les fonctions debug même en release.

Jonathan Mcdougal
Montréal, Québec
mcdougalljonathan@hotmail.com
http://www.multimania.com/utopiasoftware
0
redshirt Messages postés 5 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 3 mars 2003
13 févr. 2003 à 09:21
Dans ce cas, quel est le nom du fichier (une librairie probablement) qui correspond a ces classes ? Je pourrai le copier d'une machine a l'autre...
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
13 févr. 2003 à 13:15
Bonjour,
Est ce dû aux libraires de Visual ? genre MSVCRTD
mais à ce moment là cela devrait toucher plusieurs de tes projets...

Regardes d'abord dans le menu Tools/Options/Directories de Visual si les reps des LIBs sont équivalents sur les deux machines.
Regarde ensuite (si besoin est) la liste des LIB déclarées dans tes deux versions Debug et release de ton projet.
Regarde enfin dans le rep d'install de VC++ (rep LIB) si les LIBs demandées sont bien là sur les deux machines

D'autre part, le nom des fonctions manquantes au link doivent être spécifiées (peut être sous forme décorée) dans le msg d'erreur
A toi ensuite de chercher avec la doc dans quelle librairies elles sont situées
0
redshirt Messages postés 5 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 3 mars 2003
13 févr. 2003 à 14:17
Les messages d'erreurs ne portent en effet que sur des classes de base de Visual (CString et compagnies).
J'ai remarque qu'en creeant un nouveau projet (MFC AppWizard) et sans rien ajouter, ce projet ne link pas non plus en release.

Je vais essayer de copier d'une machine a l'autre les lib mfc42.lib et mfcs42.lib qui, je crois, contiennent le code de ces classes.
0
Rejoignez-nous