Partage
  • Partager sur Facebook
  • Partager sur Twitter

Undefined reference to maclasse::methode

probleme qt

    7 décembre 2019 à 17:13:24

    Bonjour à toutes et à tous.

    Tout d'abord je tien a dire que j'ai cherché sur le forum et j'ai trouvé un topic concernant le même problème, seulement il n'y a pas eu de reponse annoncé pour la solution et plutôt que de détérrer ce topic de 2017 j'ai préférer en crée un nouveau .

    Voila mon soucis : 

    J'utilise qt creator .

    J'ai crée une classe et automatiquement cela ma crée un cpp et un .h

    j'ai dans mon projet un dossier de test fais par qt.

    j'ai donc appélé le cpp de ma classe :

    #include "../app/CORE/core_messages.h"

    et ensuite j'ai initialisé les methode de ma classe de test :

    voidtest_coreMessagesGetChats();


    le problème aparait lorsque je crée les methodes... 
    par exemple :


    void test_app::test_coreMessagesGetChats()
    {
    core_messages*testChats=newcore_messages();
    QVERIFY(!testChats->getChats("qcordiero").isEmpty());
    }

    lorsque je compile j'ai comme erreur : undefined reference to 'core_messages::getChats(QString)

    alors que j'ai bien le .h et le .cpp de présent.

    de plus lorsque j'appel ma méthode depuis mon main en créent un objet de type core_message il comprend très bien .

    merci par avance 

    cordialement

    • Partager sur Facebook
    • Partager sur Twitter
      7 décembre 2019 à 17:59:07

      Bonjour,

      C'est une erreur très très fréquente, d'ailleurs la réponse est donnée très très fréquemment.
      Recherche Undefined reference sur le forum.

      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        8 décembre 2019 à 11:32:55

        Bonjour,

        Comme je vous l'ai dit precedement j'ai déjà cherché pendant près de 3 h sans succès.

        Donc si vous avez un lien qui pourrais me dépanner je suis preneur =) 

        merci

        • Partager sur Facebook
        • Partager sur Twitter
          8 décembre 2019 à 11:55:06

          L'erreur indique trois choses :
          - la méthode core_messages::getChats(QString) est déclarée quelque part.
          - la méthode core_messages::getChats(QString) est utilisée quelque part.
          - mais la méthode core_messages::getChats(QString) n'est définie nulle part.

          Alors :
          - ou bien le fichier où tu as défini cette méthode n'est jamais compilé
          - ou bien tu as défini une méthode qui n'est pas exactement celle-ci (nom inexact ou paramètres non identiques.)
          - ou bien tu n'as carrément pas défini le corps de ta méthode.

          Dans quel cas es-tu ?

          • Partager sur Facebook
          • Partager sur Twitter

          En recherche d'emploi.

            8 décembre 2019 à 12:05:11

            alors j'ai fais plusieurs chose : 

            j'ai crée ma classe, j'ai initialisé dans le .h les méthodes (constructeurs compris), j'ai crée le cpp ( j'ai crée le constructeur et toutes mes methodes sont correctes) puisque quand je les appellent dans le main et que je compile tout se passe correctement.

            dans le projet de test (crée automatiquement par qt)  j'include le chemin de ma classe, j'initialise la methode de test et je crée le test 

            et dans ce test j'appel ma methode depuis un object de type core_messages

            et c'est a ce moment la que il me dit qu'il ne trouve pas la classe ...

            edit : 

            Bon et bien je ne sais pas pourquoi car je n'ai absolument rien touché mais tout re fonctionne ...

            je commence a y être habitué a la force mais j'aurais vraiment bien voulu savoir pourquoi ça re fonctionne... hélas je n'est pas de temps pour rechercher cela... 

            Merci pour votre aide !

            -
            Edité par quentincordiero 8 décembre 2019 à 12:12:26

            • Partager sur Facebook
            • Partager sur Twitter

            Undefined reference to maclasse::methode

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown