IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

erreur de link


Sujet :

MFC

  1. #1
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut erreur de link
    bonjour,

    j'ai fait une librairie statique avec visual c++, et lorsque je veux utiliser celle ci dans un projet, le simple fait d'inclure un .h de ma librairie engendre plein d'erreurs :

    msvcrtd.lib(MSVCRTD.dll) : error LNK2005: __setmbcp already defined in LIBCD.lib(mbctype.obj)
    nafxcwd.lib(afxmem.obj) : error LNK2005: "public: static void __stdcall CObject::operator delete(void *)" (??3CObject@@SGXPAX@Z) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCD.lib(new.obj)
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCD.lib(dbgdel.obj)
    nafxcwd.lib(thrdcore.obj) : error LNK2005: "public: virtual void __thiscall CWinThread:elete(void)" (?Delete@CWinThread@@UAEXXZ) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(thrdcore.obj) : error LNK2005: "public: virtual int __thiscall CWinThread::IsIdleMessage(struct tagMSG *)" (?IsIdleMessage@CWinThread@@UAEHPAUtagMSG@@@Z) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(thrdcore.obj) : error LNK2005: "public: virtual int __thiscall CWinThread:reTranslateMessage(struct tagMSG *)" (?PreTranslateMessage@CWinThread@@UAEHPAUtagMSG@@@Z) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(thrdcore.obj) : error LNK2005: "public: virtual int __thiscall CWinThread:rocessMessageFilter(int,struct tagMSG *)" (?ProcessMessageFilter@CWinThread@@UAEHHPAUtagMSG@@@Z) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(thrdcore.obj) : error LNK2005: "public: virtual class CWnd * __thiscall CWinThread::GetMainWnd(void)" (?GetMainWnd@CWinThread@@UAEPAVCWnd@@XZ) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(thrdcore.obj) : error LNK2005: "public: virtual int __thiscall CWinThread:umpMessage(void)" (?PumpMessage@CWinThread@@UAEHXZ) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: virtual void __thiscall CObject::Serialize(class CArchive &)" (?Serialize@CObject@@UAEXAAVCArchive@@@Z) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: __thiscall CString::CString(void)" (??0CString@@QAE@XZ) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: int __thiscall CString::GetLength(void)const " (?GetLength@CString@@QBEHXZ) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: __thiscall CString::operator char const *(void)const " (??BCString@@QBEPBDXZ) already defined in mfc42d.lib(MFC42D.DLL)
    nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: char __thiscall CString::operator[](int)const " (??ACString@@QBEDH@Z) already defined in mfc42d.lib(MFC42D.DLL)

    ....


    Est ce que quelqu'un saurait de quoi ca peut venir?

    merci

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    une erreur de link est très souvent du à une librairie manquante !
    rajoute dans les propriété de ton projet, le fichier librairie manquant et tu ne devrais pu avoir de problèmes.
    Jérémy
    Ingénieur Conception et Développement

  3. #3
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut
    j'ai déjà rajouté toutes les librairies dont j'ai besoin à mon projet. Après avoir recompilé chacune de mes librairies et mon projet avec Use run-time library = Debug Multithreaded,

    il me reste les erreurs suivantes :

    Linking...
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMTD.lib(new.obj)
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj)

  4. #4
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut
    j'ai résolu ce problème, il fallait rajouter /FORCE:MULTIPLE dans les options de compilation

    http://msdn.microsoft.com/library/de...ml/LNK2005.asp

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    le pb est de savoir si toutes les librairies utilisées sont en multi-thread .
    ce genre de pb arrive aussi si il y a melange mono et multi-thread.

  6. #6
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut
    j'ai tout mis en multi-thread et ca a l'air de marcher

  7. #7
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Excellent !! c'est exactement ce sur quoi je me prends la tete depuis des heures !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. template et erreur de link
    Par Willand dans le forum Langage
    Réponses: 12
    Dernier message: 05/12/2006, 21h19
  2. Erreurs de link. Besoin d'aide.
    Par Sunsawe dans le forum MFC
    Réponses: 11
    Dernier message: 22/07/2005, 21h11
  3. erreur de link(age) g++
    Par corwin dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/05/2004, 11h33
  4. [wxWindows] Erreur de link pour ODBC
    Par ovh dans le forum wxWidgets
    Réponses: 3
    Dernier message: 28/01/2004, 15h38
  5. DirectDrawCreate erreur de link
    Par Ing_Ben dans le forum DirectX
    Réponses: 1
    Dernier message: 01/12/2002, 18h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo