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 :

Erreurs au link


Sujet :

Visual C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Erreurs au link
    bonjour j'ai les erreurs suivantes


    Édition des liens en cours...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    msvcprt.lib(MSVCP80.dll) : error LNK2005: "class std::basic_ostream > & __cdecl std::operator<< >(class std::basic_ostream > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) déjà défini(e) dans VC7_Cplex.obj
    concert.lib(iloord.obj) : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ) référencé dans la fonction "public: void * __thiscall IloMemory::alloc(long)" (?alloc@IloMemory@@QAEPAXJ@Z)
    concert.lib(ilodatacolumn.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilocollectionoperator.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilonumcollexpr.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(iloanycollexpr.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilotuplesetop.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(iloforallbase.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(evaluator.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(iloforall.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilocollection.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilointcollexpr.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    Debug/VC7_Cplex.exe : fatal error LNK1120: 1 externes non résolus
    Avez vous une idée, je pense que c'est une histoire de dll, si oui où pourrais je les modifier ou les rajouter?

    Pense à utiliser la balise code et a mettre un titre en rapport avec le sujet, Merci Farscape

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Édition des liens en cours...
    msvcprt.lib(MSVCP80.dll) : error LNK2005: "class std::basic_ostream > & __cdecl std::operator<< >(class std::basic_ostream > &,char const *)" (??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) déjà défini(e) dans VC7_Cplex.obj
    concert.lib(iloord.obj) : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ) référencé dans la fonction "public: void * __thiscall IloMemory::alloc(long)" (?alloc@IloMemory@@QAEPAXJ@Z)
    concert.lib(ilodatacolumn.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilocollectionoperator.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilonumcollexpr.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(iloanycollexpr.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilotuplesetop.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(iloforallbase.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(evaluator.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(iloforall.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilocollection.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    concert.lib(ilointcollexpr.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall std::ostrstream::~ostrstream(void)" (__imp_??1ostrstream@std@@UAE@XZ)
    Debug/VC7_Cplex.exe : fatal error LNK1120: 1 externes non résolus
    1. Qu'est-ce que VC7_CPlex.obj et pourquoi redéfinit-il l'opérateur d'insertion de flux pour const char* ?
    2. Il te manque apparemment une bibliothèque statique d'importation qui indique quelle DLL implémenta la classe ostrstream (je rappelle que ce n'est pas une classe standard, vu que celle du standard s'appelle std::ostringstream).

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    comment pourrai je l'inclure; je m'y connais pas trop en VC++, je reprends un code

    pouvez vous eventullement m'indiquer un tutoriel

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    j'ai ajouté la dll msvcp80 au répertoire system32 mais même erreur

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Tu annules ta modif tout de suite, on n'a jamais parlé de msvcp80 ici.
    Cette DLL n'a aucun rapport avec ton problème présent, et cette "solution" est mauvaise même si c'était le cas.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    c fait mais je ne vois tjrs pas

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    1-Qu'est-ce que VC7_CPlex.obj et pourquoi redéfinit-il l'opérateur d'insertion de flux pour const char* ?

    c'est le .obj généré suite à la compilation, je l'ai supprimé, en recompilant j'ai toujours le même problème

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    C'est VC7_CPlex.c qu'il faut modifier, alors.
    Mais pour la lib qu'il te manque, aucune idée, je ne suis pas devin!

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 175
    Points : 12 302
    Points
    12 302
    Par défaut
    Pour moi, à première vue, il y a utilisation de 2 implémentations "différentes" de la STL utilisées dans l'ensemble code de l'exécutable + les librairies utilisées.

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Pour moi, à première vue, il y a utilisation de 2 implémentations "différentes" de la STL utilisées dans l'ensemble code de l'exécutable + les librairies utilisées.
    salut bacelar
    il s'agit d'un seul fichier, dans lequel cplex est utilisé pour résoudre un PLNE, vous voyez une différence entre conert.lib et mvcp..lib en fait la concert.lib est une lib du solveur Cplex, j'ai cherché dans la doc, mais je ne vois toujours pas comment je peux résoudre ce conflit.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 175
    Points : 12 302
    Points
    12 302
    Par défaut
    C'est un problème de link, pas de compilation.
    Ce n'est donc pas dans ton fichier source lui-même que se pose le problème mais dans les options du linker ou dans les fichiers d'entrées du linker (obj, lib static et lib de dll).
    Tu utilises directement, mais plus probablement indirectement, 2implémentations "différentes" de la STL. Le simple fait d'utiliser la lib C en static ou en dynamique génèrera 2 STL différentes.

    Vérifies donc la compatibilité de chacun des librairies utilisées.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Meme chose
    J'ai le même problème. J'ai réglé la première erreur de link en mettant runtime library à Multi-threaded DLL (/MD).

    Pour le reste je vois pas, il doit manquer un .lib qui définit les symboles que concert.lib veut appeler mais je ne vois pas lequel. En 2003 ou avant, ça devait être inclus par défaut et ça l'est plus sous VS2008 on dirait. Une idée?

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 175
    Points : 12 302
    Points
    12 302
    Par défaut
    Pouvez-vous recompiler toutes vos librairies avec le même compilateur et les mêmes options de compilation et d'édition de lien ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Non car il s'agit de linker un projet exemple qui se sert de la librairie payante (et probablement cher) concert.lib qu'on ne peut pas recompiler (n'ayant pas les sources). Visiblement concert.lib a été compilé avec vs 6.

  15. #15
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 175
    Points : 12 302
    Points
    12 302
    Par défaut
    concert.lib : librairie payante (et probablement cher)
    Donc probablement bien documentée et je pense que l'utilisation de la runtimeC en multi-threaded en Dll devait y être indiqué en rouge gros et souligné.
    Une version de compilateur comme VC++6 peu utiliser un nombre impressionnant de version de dll, de version de runtimeC et de version de lib.
    La runtimeC en multi-threaded en Dll n'est qu'un des multiples paramètres de l'édition de lien, même sous VC++6.

    Vu les messages d'erreur concert.lib semble être un librairie statique (pas de dll concert.dll), déjà c'est super moyen pour la portabilité mais passons.

    On regard des postes de Médinoc et d'onur, puis avec Google, le problème vient d'une en conformité de VS2005 et supérieur avec le standard C++

    http://msdn.microsoft.com/en-us/library/8h8eh904.aspx

    Alors, maintenant qu'on a la cause claire et précise, je vois quelques manières de contourner l'obstacle.
    - Avoir une nouvelle version de concert.lib respectant la norme C++ depuis VS2005
    - trouver les .h, les .lib et dll fournit avec VS2003 ou inférieur en relation avec la classe std::ostrstream et s'arranger pour les utiliser durant la compilation (.h) de vos sources et durant le link avec concert.lib. S'il y a collision avec l'utilisation de la nouvelle implémentation de cette classe via d'autres librairies, il faudra penser à encapsuler cette concert.lib dans une dll.

    - à voir si nécessaire ....

    Je le répète, concert.lib semble être un librairie statique, c'est super MEGA moyen (TOUT POURRI) pour la portabilité et on vient dans voir l'illustration.

Discussions similaires

  1. erreur de link
    Par meli0207 dans le forum MFC
    Réponses: 6
    Dernier message: 04/05/2007, 10h17
  2. template et erreur de link
    Par Willand dans le forum Langage
    Réponses: 12
    Dernier message: 05/12/2006, 21h19
  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