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 :

librairie statique/dynamique


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut librairie statique/dynamique
    Salut,

    Est-il possible de linker dans un meme projet a deux libraires respectivement statique pour l'une et utilisant une DLL pour l'autre?

    Merci

  2. #2
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    ??? essaye d'expliquer ton problème très bien.

    tu veux dire qu'une application A veut utiliser une librairie statique et une dll en même temps, bien sur que tu peux ...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Oui, c'est ce que voulais dire, mon application A voudrais bien linker a une librairie statique et a une DLL en meme temps.
    Simplement, j'obtiens les erreurs de linkage suivantes et je m'etais laissé dire que c'etait peut-etre ca qui causait le probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ibcpmtd.lib(locale0.obj) : error LNK2005: "public: class std::locale::facet const * __thiscall std::locale::_Getfacet(unsigned int,bool)const " (?_Getfacet@locale@std@@QBEPBVfacet@12@I_N@Z) already defined in msvcprtd.lib(MSVCP60D.dll)
    libcpmtd.lib(locale0.obj) : error LNK2005: "public: bool __thiscall std::locale::_Iscloc(void)const " (?_Iscloc@locale@std@@QBE_NXZ) already defined in msvcprtd.lib(MSVCP60D.dll)
    libcpmtd.lib(iostream.obj) : error LNK2005: "public: __thiscall std::ios_base::Init::Init(void)" (??0Init@ios_base@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP60D.dll)
    libcpmtd.lib(iostream.obj) : error LNK2005: "public: __thiscall std::ios_base::Init::~Init(void)" (??1Init@ios_base@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP60D.dll)
    libcpmtd.lib(ios.obj) : error LNK2005: "public: void __thiscall std::ios_base::clear(int,bool)" (?clear@ios_base@std@@QAEXH_N@Z) already defined in msvcprtd.lib(MSVCP60D.dll)
    Donc est-ce que VC++ permet ce genre de chose..ou pas?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    C'est plutot un probleme avec le .lib je pense. Il doit être compilé pour utiliser la lib standard en version Dll / lib statique, et ton exe doit utiliser l'autre version. Change les settings de ton exe. C++->generation de code->bibliothèque runtime.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Change les settings de ton exe. C++->generation de code->bibliothèque runtime.
    J 'ai fait cette manip mais j'obtient les erreurs suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fread already defined in LIBCMTD.lib(fread.obj)
    MSVCRT.lib(MSVCRT.dll) : error LNK2005: _exit already defined in LIBCMTD.lib(crt0dat.obj)
    MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fprintf already defined in LIBCMTD.lib(fprintf.obj)
    MSVCRT.lib(MSVCRT.dll) : error LNK2005: _sprintf already defined in LIBCMTD.lib(sprintf.obj)
    MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fwrite already defined in LIBCMTD.lib(fwrite.obj)
    MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fflush already defined in LIBCMTD.lib(fflush.obj)
    J'ai bien essayé d'ignorer MSVCRT.lib mais sans aucun changement observable.

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/03/2013, 08h15
  2. Librairies statiques et librairies dynamiques
    Par pedatic dans le forum Administration système
    Réponses: 1
    Dernier message: 21/07/2009, 13h43
  3. conversion librairie statique <=> dynamique
    Par Mokhtar BEN MESSAOUD dans le forum Linux
    Réponses: 3
    Dernier message: 27/06/2008, 19h05
  4. Réponses: 3
    Dernier message: 21/11/2007, 08h32
  5. Réponses: 2
    Dernier message: 19/08/2005, 16h02

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