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

Visual C++ Discussion :

Probleme de link


Sujet :

Visual C++

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut Probleme de link
    Bonjour,

    J'ai un probleme de link. Je dois modifier un projet(dll) existant, pour cela j'utilise des fonctions d'une librairie.

    La dll est compile en mode "MFC: Use Standard Windows Libraries". (je n'ai pas le droit de changer)
    La lib est compile en mode "MFC: Use Standard Windows Libraries".

    Avant modif:
    Les deux compile independamment, 0 erreur, 0 warning.

    Modif:
    J'inclus le fichier .h qui contient mes fonctions dans le projet dll.
    Je link avec la lib (Properties/Linker/Input/Add Dep/maLib.lib

    Je recompile ma dll, ca compile jusqu'au link ou j'obtiens les erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Compiling manifest to resources...
    Linking...
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fprintf already defined in libcmtd.lib(fprintf.obj)
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fopen already defined in libcmtd.lib(fopen.obj)
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __errno already defined in libcmtd.lib(dosmap.obj)
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _malloc already defined in libcmtd.lib(dbgheap.obj)
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _sprintf already defined in libcmtd.lib(sprintf.obj)
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fclose already defined in libcmtd.lib(fclose.obj)
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _free already defined in libcmtd.lib(dbgheap.obj)
    MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fflush already defined in libcmtd.lib(fflush.obj)
    MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in libcmtd.lib(typinfo.obj)
    MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in libcmtd.lib(typinfo.obj)
    J'ai essayer:
    - de mettre ma dll en "Use MFC in shared DLL" => ca compile bien mais j'ai pas le droit de le faire(contrainte), j'ai fait le test uniquement pour voir(au cas ou ca peut vous aider a m'aider).
    - de mettre ma lib en "Use MFC in shared DLL" => ca change rien.
    - d'ignorer libcmtd.lib(Properties/Linker/Input/Ignore spec lib/):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Compiling manifest to resources...
    Linking...
       Creating library ..\Compilation\Debug\MaDLL.lib and object ..\Compilation\Debug\MaDLL.exp
    MaDLL.obj : error LNK2001: unresolved external symbol __crtDbgFlag
    nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
    nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
    Je sais plus quoi faire...
    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Ce n'est pas aux réglages MFC qu'il faut toucher, mais aux réglages de la CRT.
    Project Properties -> Configuration properties -> C/C++ -> Code generation -> Runtime library.

    Épluche chaque projet et chaque fichier de chaque projet pour vérifier que cette option est la même partout. L'erreur montre qu'il y a conflit (Au moins un truc utilise la version DLL, au moins un autre truc utilise la version statique).

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut
    Yes!!! c'etait ca, bon maintenant j'ai un autre probleme, mais ca va faire un autre post.

    Merci a toi
    PS pour info: je l'avais pas changer dans ma lib, la dll c'etait bon mais pas la lib.

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

Discussions similaires

  1. probleme de link
    Par Volazara dans le forum MFC
    Réponses: 1
    Dernier message: 22/12/2005, 15h26
  2. [MFC]probleme de link
    Par benahpets dans le forum MFC
    Réponses: 4
    Dernier message: 12/08/2005, 10h56
  3. [newbie][virtual] probleme de link
    Par BainE dans le forum MFC
    Réponses: 1
    Dernier message: 01/06/2005, 18h21
  4. probleme de link avec visual studio .net 2003
    Par kamal101 dans le forum MFC
    Réponses: 9
    Dernier message: 28/03/2005, 22h44
  5. [dev-cpp] probleme de link
    Par alex1er dans le forum Dev-C++
    Réponses: 5
    Dernier message: 20/01/2005, 18h41

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