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] LNK2019: unresolved external symbol "void


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut [error] LNK2019: unresolved external symbol "void
    Bonjour � vous ^^

    Je suis administrateur d'un serveur priv� en ligne et je me suis lanc� dans le d�veloppement c++ d'un �mulateur en open source.

    je compile sous windows avec visual 2003.

    d'origine l'�mulateur fonctionne tr�s bien mais je souhaiterais faire appel � des fonctions que j'ai cr�� moi m�me (donc un nouveau .cpp et un .h) vers un autre fichier .cpp

    Voil� 5 jours que je me creuse la t�te sur mon am�lioration, et 2 jours que je cherche d'ou vient le probl�me.

    j'en vient au fait (d�sol� pour ce long texte, mais c'est mon premier message ici..)

    lorsque je Compile la premi�re partie de l'�mulateur, tous va bien.
    lorsque je Compile la 2�me partie de l'�mulateur je re�oit 4 erreur de ce type :

    error LNK2019: unresolved external symbol "void __cdecl AjoutMaxskill(class Player *)" (?AjoutMaxskill@@YAXPAVPlayer@@@Z) referenced in function "void __cdecl SendDefaultMenu_PMJ(class Player *,class Creature *,unsigned long)" (?SendDefaultMenu_PMJ@@YAXPAVPlayer@@PAVCreature@@K@Z)
    J'ai fouill� multitudes de forum et essay� beaucoup de modifications sans y trouver un rem�de pour mon cas.

    4 fonctions void que j'ai cr�� poss�dent cette m�me erreur.

    Les lignes concernants une fonction void :
    dans le fichier Xian .cpp
    void AjoutMaxskill(Player *player)
    {

    loginDatabase.PExecuteLog("INSERT INTO `maxskill` (`guid`) VALUES (%f)", player->GetGUID());

    }
    dans le fichier Xian .h
    void AjoutMaxskill(Player *player);
    dans le fichier PMJ.cpp
    void SendDefaultMenu_PMJ(Player *player, Creature *_Creature, uint32 action )
    {

    switch (......)
    {

    case ............... :

    if (............... == 2)
    {
    ..............................


    }
    else if (............... == 1)
    {

    AjoutMaxskill(player);
    }
    Voil� rien de trop particulier, lors de la compilation tous va bien pour Xian.cpp et Xian.h , c'est PMJ.cpp qui me met l'erreur en question.

    d�sol� pour les "..............." c'est pour vous raccourcir les codes non concern�s et pour eviter une eventuelle copie de mon id�e..

    Tous les include .h n�cessaires sont bien associ�s, rien � dire de ce cot�-ci. (raison pour laquelle je ne les ai pas cit�s.)

    Si vous d�sirez une explication beaucoup plus d�taill�e sur l'histoire des 2 parties diff�rentes � compiler n'hesitez pas � demander.
    Je r�pondrais � toute vos questions tant que je finis par r�soudre ce probl�me un jour ^^
    Je vous remerci d'avance en esp�rant avoir une aide

  2. #2
    R�dacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur s�curit� informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Chercheur s�curit� informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par d�faut
    Bonjour et bienvenu sur les forums de DVP

    Est-ce que le fichier source PMJ.cpp inclut bien le fichier d'en-t�te Xian.h ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    Oui le Xian.h est bien inclu tout en haut comme il faut ^^

    #include "../../../../game/Xian.h"
    il fait partie de la premi�re compilation et ce trouve donc dans un r�pertoire diff�rent.

    pour simplifi� l'explication :

    1�re compilation : l'emulateur en lui m�me.
    2�me compilation : l'intelligence artificielle rajout� aux cr�ature dans le jeu.

  4. #4
    Membre �m�rite Avatar de valefor
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    711
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 711
    Par d�faut
    Par contre il faut "linker" tes deux parties.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    les 2 parties sont par d�faut d�j� link�, c'est un �mulateur en open source que j'ai repris ^^

    je n'ai fait qu'ajouter 5 scripts .cpp dans la partie 2 faisant appel � des .h des parties 1 et 2 qui fonctionnent � 100%.
    (aussi bien dans le jeu qu'� la compile 0 erreur)

    + 1 script (PMJ.cpp) partie 2 (qui lui poss�de un erreur de link vis � vis des fonction Void cr��s dans les xian.cpp et xian.h que j'ai cit�)
    et 2 scripts partie 1 (xian.cpp et xian.h) qui eux n'ont pas de probl�mes lors de la compilation.

    Le probl�me reste toujours flou pour moi actuellement bien que je continu de faire des manip.

  6. #6
    Membre �m�rite Avatar de valefor
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    711
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 711
    Par d�faut
    Tu peux nous passer les lignes de commandes qui te servent � compiler ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    Etant donn� que je d�bute en c++ , n'ayant pour l'instant cr�er aucun programme de mes mains , mais plutot d�velopper ce fameux emulateur qui m'int�resse beaucoup.. certains mots m'�chappent ^^'

    Que veux-tu dire par lignes de commandes servant � compiler ?
    Ou plutot ou puis-je les trouver ?

  8. #8
    Membre �m�rite Avatar de valefor
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    711
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 711
    Par d�faut
    n'ayant pour l'instant cr�er aucun programme de mes mains , mais plutot d�velopper ce fameux emulateur qui m'int�resse beaucoup.. certains mots m'�chappent ^^'
    Oui, effectivement, dans ce cas on ne dis pas "d�velopper ce fameux emulateur".

    Mais bon.

    Quand tu compiles le bouzin, tu tapes make (peut-�tre) et puis des tas de trucs s'affichent � l'�cran. Tu peux copier coller la section qui pr�c�de l'erreur.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    pour moi d�velopper est proche d'am�liorer ^^ et programmer est proche de la cr�ation. Peut-�tre ai-je mal saisi :p

    Voici donc les ligne durant la compilation.
    (au passage j'ai pas de lignes de commande, je suis sous windows et j'utilise visual 2003 ^^)

    Linking...

    Creating library ..\..\..\..\bin\release/MaNGOSScript.lib and object ..\..\..\..\bin\release/MaNGOSScript.exp

    PMJ.obj : error LNK2019: unresolved external symbol "void __cdecl AjoutMaxskill(class Player *)" (?AjoutMaxskill@@YAXPAVPlayer@@@Z) referenced in function "void __cdecl SendDefaultMenu_PMJ(class Player *,class Creature *,unsigned long)" (?SendDefaultMenu_PMJ@@YAXPAVPlayer@@PAVCreature@@K@Z)

  10. #10
    Membre �prouv�
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par d�faut
    Info : les balises code ajoutent la coloration syntaxique toutes seules.

  11. #11
    Membre confirm� Avatar de babar63
    Homme Profil pro
    D�veloppeur jeux vid�os/3d Temps r�el
    Inscrit en
    Septembre 2005
    Messages
    241
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur jeux vid�os/3d Temps r�el

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par d�faut
    pour moi d�velopper est proche d'am�liorer ^^ et programmer est proche de la cr�ation. Peut-�tre ai-je mal saisi :p
    Tout � fait bien vu
    A ma connaissance, si tu as cette erreur (que je connais trop bien ) c'est que quelques part soit le fichier Xian.cpp n'as pas �tait inclu(.cpp dans un projet ou .lib linker) soit c'est seulement la fonction AjoutMaxskill qui n'est pas pr�sent dans la librairie(ancienne version?)... As-tu bien v�rifier tout cela?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    je pense que c'est donc la fonction ^^
    car j'ai bien ajout� le xian.h et le xian.cpp dans le makefile.am et le .sln

    comment puis-je donc ajout� mes nouvelles fonctions ? ^^

    ps : je peut envoyer mon msn en mp si une conversation instantann�e semble plus simple

  13. #13
    Membre confirm� Avatar de babar63
    Homme Profil pro
    D�veloppeur jeux vid�os/3d Temps r�el
    Inscrit en
    Septembre 2005
    Messages
    241
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur jeux vid�os/3d Temps r�el

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par d�faut
    Tu cr�e une lib lors de la premi�re compilation? Si c'est le cas alors r�cup�re la et �change la avec celle que tu utilise pour la deuxi�me compilation... c'est simplement une supposition si tes projets ne fonctionnent pas comme �a peux tu donner donner de plus amples d�tails sur la mani�re dont fonctionnent tes projets...

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    si tu veux je peut te passer les sources d'origine pour que tu puisse � peut pr�s voir comment tous ce projet ce compile ^^

    enfin si tu as tortoise svn , je pense que c'est beaucoup plus simple de cette fa�on que d'expliquer par moi m�me en tant que d�butant

    pour �tre plus pr�cis , c'est un �mulateur en open source nomm� Mangos que j'essaye d'am�liorer.
    A celui-ci s'ajoute un autre projet nomm� ScriptDev2 qui sert � rajout� une intelligence artificielle aux cr�atures.

    s'il faut j'enverrais un morceau de mes modif pour voir si tu peux �ventuellement trouver le probl�me.

    (emulateur utilis� pour le jeu World of warcraft)

    pour �tre plus pr�cis, ce sont 2 projets diff�rents, et non 2 parties en fait , je me suis mal expliqu�

    le 1er projet est une compilation qui cr�er un .exe (mangos)
    le 1er peut tout a fait fonctionner sans le 2�me.


    et le 2�me projet repasse par dessus. (scriptdev2)

    En tous cas merci beaucoup pour l'aide

  15. #15
    Membre confirm� Avatar de babar63
    Homme Profil pro
    D�veloppeur jeux vid�os/3d Temps r�el
    Inscrit en
    Septembre 2005
    Messages
    241
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur jeux vid�os/3d Temps r�el

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par d�faut
    Malheureusement je n'ai pas tortoiseSVN (et je ne savais d'ailleurs pas ce que c'�tait je viens juste de jeter un bref coup d'oeil...)
    Je dois aussi bien avouer que je commence � me perdre dans les descriptions de ton projet peux-tu faire un petit listing genre :
    (NomProjet) => fichier(xxx.h) ajout de (maFontion())
    fichier(xxx.cpp) ajout de...
    Aussi qu'entends-tu par "le 2�me projet repasse par dessus" ce projet cr�� quoi exactement?

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    �tant donn� que la liste des fichiers dans le projet est trop long, je t'ai fait 2 screenshots pour les 2 projets.

    Projet 1 (emulateur mangos) :



    Projet 2 (application script IA cr�atures) :



    Inutile de pr�ciser que presque tous les dossiers contiennent des fichier .cpp et .h

    Ne fait pas attention aux symbole sur les dossier/fichier , c'est un genre de v�rification de Tortoise SVN vis � vis des sources d'origines. (un v = dossier/fichier d'origine, un " ! " = dossier/fichier modifi� et s'il n'y a rien cela veut dire que c'est un rajout de moi m�me.

    j'ai rechang� mes lignes de programmes. (le probl�me de link est toujours pr�sent..)

    Je vais donc te faire 3 screenshots. (dans le PMJ.cpp j'ai effac� des lignes pour eviter une eventuelle copie)

    Xian.cpp :



    Xian.h :



    PMJ.cpp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    #include "../sc_defines.h"
    #include "../../../../game/Player.h"
    #include "../../../../game/GossipDef.h"

  17. #17
    Membre �prouv�
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par d�faut
    Salut, avec les sources r�elles, l'erreur saute aux yeux :

    Dans ton Xian.h tu d�clare AjoutMaxSkill() en tant que fonction non membre appartenant au namespace global mais dans Xian.cpp tu impl�mentes Player::AjoutMaxSkill() fonction membre de Player (probablement m�me jamais d�clar�e).

    Dans PMJ.cpp tu appelles la fonction gloable mais du coup elle n'a pas d'impl�mentation : erreur de link. voila.

    Maintenant c'est � toi de voir, selon ton but, si la fonction doit �tre membre d'un objet Player ou peut-�tre globale. @+

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    euh j'avais oubli� de l'enlever avant de faire le screenshot le " player:: " sinon il n'y est pas � la base dans Xian.cpp, je l'avais mis car j'avait tenter de mettre mes fonctions dans un autre fichier .cpp qui ce nomme player.cpp poss�dant une structure nomm� player dans le .h et plein de fonction void appell�es par player::

    Je m'excuse pour cette erreur d'inattention.

    en gros le fichier Xian.cpp mis � jour :



    Le probl�me de Lien persiste toujours.

  19. #19
    Membre confirm� Avatar de babar63
    Homme Profil pro
    D�veloppeur jeux vid�os/3d Temps r�el
    Inscrit en
    Septembre 2005
    Messages
    241
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur jeux vid�os/3d Temps r�el

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par d�faut
    Au moins maintenant tout est bien clair
    Je suppose que le "};" a la fin du fichier 'Xian.h' est juste une erreur d'inattention �galement ?
    Le fichier PMJ.cpp n'inclut pas ce fichier? Enfin si la fonction n'�tait pas d�clar� �a ne serait pas une erreur de link...
    Pour en revenir au vrai probl�me, lorsque tu g�n�re le projet Mangos tu obtiens une application n'est-ce-pas? Donc un .exe, en fait le seul � connaitre la DEFINITION de la fonction AjoutMaxskill... Le second projet quand � lui connait la d�claration (si le fichier 'Xian.h' est bien inclu quelques part) mais c'est tout... Je peux me tromper mais je dirai que le probl�me vient de l�... Et si c'est le cas alors pour le r�gler tu peux peut-�tre s�par� en trois projet... une librairie qui contient la d�finition des fonctions souhait�es, puis l'application et ton second projet link�s avec cette lib?
    C'est seulement une hypoth�se dis-moi si j'ai tout faux

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    37
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 37
    Par d�faut
    Je suppose que le "};" a la fin du fichier 'Xian.h' est juste une erreur d'inattention �galement ?
    En effet ^^

    Maintenant que j'ai tous remodifi� je vais tenter une recompilation des 2 projets et je te donnerais les nouveaux r�sultats ^^

    edit : fini de compiler les 2 projets, 0 erreurs pour la compilation en elle m�me.

    il n'y a que 4 erreurs de liens, comme avant, retour � la case d�part

    ScriptDev2 error LNK2019: unresolved external symbol "void __cdecl AjoutMaxskill(class Player *)" (?AjoutMaxskill@@YAXPAVPlayer@@@Z) referenced in function "void __cdecl SendDefaultMenu_PMJ(class Player *,class Creature *,unsigned long)" (?SendDefaultMenu_PMJ@@YAXPAVPlayer@@PAVCreature@@K@Z)

Discussions similaires

  1. error LNK2019: unresolved external symbol
    Par Francixtra dans le forum Visual C++
    R�ponses: 4
    Dernier message: 31/03/2011, 02h32
  2. [DDK] error LNK2019: unresolved external symbol
    Par sloshy dans le forum Windows
    R�ponses: 2
    Dernier message: 27/06/2008, 22h31
  3. error LNK2019: unresolved external symbol
    Par ilimo dans le forum C++
    R�ponses: 22
    Dernier message: 09/04/2006, 23h59
  4. error LNK2019: unresolved external symbol
    Par soniona dans le forum Autres �diteurs
    R�ponses: 2
    Dernier message: 06/04/2006, 14h03
  5. R�ponses: 4
    Dernier message: 23/04/2004, 16h06

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