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

C++ Discussion :

Error LNK2005


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 92
    Par défaut Error LNK2005
    Bonjour,

    J'ai une petite erreur dans un code récupéré.
    J'ai vu les autres post traitant de ces erreurs, mais ils ne correspondent pas car ce sont des erreurs non lié à une lib externe

    Mon erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1>Édition des liens en cours...
    1>LIBCMTD.lib(chkesp.obj) : error LNK2005: __chkesp déjà défini(e) dans DisplayHID.obj
    1>.\Debug/DisplayHID.exe : fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés
    Je travaille sous Visual C++ 2005 avex Windows XP familial.
    Le code vient d'ici : http://www.intel.com/intelpress/usb/Examples/DHIDVC.htm

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 92
    Par défaut
    Windows fournit des informations pour contrer ce problème :
    http://support.microsoft.com/default...;en-us;q148652

    Mais ca ne marche pas ...
    Enfin je me trompe peut etre car j'ai une version francaise et ca ne correspond pas à 100 % mais je n'ai pas réussi à résoudre mon problème avec leurs solutions

  3. #3
    Membre chevronné
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par défaut
    Explicites clairement ce que tu as fait et les réactions que ca a produit ...
    Tu as essayé d'inverser l'ordre des bibliothèques comme conseillé ?
    Tu as essayé d'ignorer la librairie qui pose conflit ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 92
    Par défaut
    Finalement le probleme n'est peu t etre pas le meme que présenté par intel. Car chez intel c'est entre 2 lib, tandis que dans mon cas c entre une lib et ma classe.

    Ce que j'ai fait :
    Propriété de configuration -> editeur de liens -> entrée -> bibliotheque spécifique ignoré ( LIBCMTD.lib )
    et j'obtiens l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    1>DisplayHID.obj : error LNK2019: symbole externe non résolu _printf référencé dans la fonction _main
    1>DisplayHID.obj : error LNK2019: symbole externe non résolu ___security_cookie référencé dans la fonction _main
    1>DisplayHID.obj : error LNK2019: symbole externe non résolu @__security_check_cookie@4 référencé dans la fonction _main
    1>DisplayHID.obj : error LNK2019: symbole externe non résolu @_RTC_CheckStackVars@8 référencé dans la fonction _main
    1>DisplayHID.obj : error LNK2019: symbole externe non résolu __RTC_CheckEsp référencé dans la fonction _main
    1>DisplayHID.obj : error LNK2001: symbole externe non résolu __RTC_Shutdown
    1>DisplayHID.obj : error LNK2001: symbole externe non résolu __RTC_InitBase
    Normal vu que j'ai plus la lib

    Autre technique :
    Localiser le problème ^^ donc plus interressant il me sort ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    1>Édition des liens en cours...
    1>Recherche en cours des bibliothèques
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\odbc32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\odbccp32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\setupapi.lib :
    1>    Recherche en cours C:\WINDDK\3790.1830\lib\wxp\i386\hid.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\kernel32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\user32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\gdi32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\winspool.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\comdlg32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\advapi32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\shell32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\ole32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\oleaut32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\uuid.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Visual Studio 8\VC\lib\LIBCMTD.lib :
    1>LIBCMTD.lib(chkesp.obj) : error LNK2005: __chkesp déjà défini(e) dans DisplayHID.obj
    1>    Recherche en cours C:\WINDDK\3790.1830\lib\wxp\i386\OLDNAMES.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\odbc32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\odbccp32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\setupapi.lib :
    1>    Recherche en cours C:\WINDDK\3790.1830\lib\wxp\i386\hid.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\kernel32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\user32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\gdi32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\winspool.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\comdlg32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\advapi32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\shell32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\ole32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\oleaut32.lib :
    1>    Recherche en cours C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\uuid.lib :
    1>Fin de la recherche des bibliothèques
    Si l'objet du probleme vous saute aux yeux, je veux bien un indice ^^ pendant ce temps je continue à chercher

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 92
    Par défaut
    Derniere petite info :
    La double définition semble venir de :
    --> LIBCMTD.lib pour l'obj chkesp

    dans le code je le retrouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    extern "C" void __declspec(naked) __cdecl _chkesp() {
    	_asm je okay
    		printf("Stack pointer mismatch!\n");
    okay:
    	_asm ret
    	}
    Apres le main. J'avoue ne pas comprendre à quoi sert ce bout de code

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    C'est un code de débogage qui sert à vérifier que le stack pointer est bien le même avant et après l'exécution d'une fonction. C'est normal qu'il soit dans LIBCMTD.lib, mais je ne vois pas ce qu'il fait dans la lib Intel...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 92
    Par défaut
    est ce que si j'enleve ce bout de code, plus rien risque de marcher ?
    Ou ce bout de code n'est pas censé avoir d'influence si tout va bien.

    Parce que j'ai essayé d'executer mon programme sans, ca marche, mais je suis pas sur du fonctionnement...
    Ca a l'air de marcher, je peux faire confiance sans le bout de code pour la vérification du stack pointeur ?


    PS médinoc : c'est pas bien de mettre cette signature, j'ai perdu une demi heure de boulot à lire ce comic l'autre fois : / de ta faute !!

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Si tu es sûr que le code est le même pour les deux libs, tu peux en supprimer un sans problème.

    Et lorqu'un programme est compilé en Release, ce bout de code est absent et jamais utilisé (enfin, celui de libcmtd c'est le cas), puisqu'il ne sert qu'à signaler de manière fatale une erreur (donc quand tout va bien, rien ne se passe), et la plupart du temps, tout va bien.

    PS: Cette webcomic est prenante, non?
    Si on lit tout, on sent bien l'amélioration du style graphique avec le temps...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 92
    Par défaut
    Oki je l'enleve alors ==> résolu en supprimant, mais résolu


    PS : j'ai pas tout lu quand j'ai vu que j'avais 4 ou 5 ans de retard, et qu'il y avait une tabloid par jour quasiment . Mais ce que j'en ai lu m'a fait rire.
    Et m'a meme fait me poser des questions philosophique, est ce que je pourrais sortir avec une femme qui peut se transformer en homme ... je crois pas XD

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

Discussions similaires

  1. Réponses: 23
    Dernier message: 15/08/2008, 05h14
  2. Pb: error LNK2005: _fopen déjà defini
    Par sheepman dans le forum Windows
    Réponses: 1
    Dernier message: 18/04/2007, 14h54
  3. Réponses: 1
    Dernier message: 20/02/2007, 17h17
  4. [MFC]error LNK2005
    Par annedjomo dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2006, 21h15
  5. Réponses: 2
    Dernier message: 31/10/2005, 13h40

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