Partage
  • Partager sur Facebook
  • Partager sur Twitter

erreur undefined reference to

    10 mai 2019 à 9:46:41

    Bonjour, on a crée un code en c, d'un jeu, et on a une erreur reccurente sur certaines fonctions quand on build sur codeblocks : undefined reference to (fonction). Pourtant, tout est bon et en cherchant sur internet on voit que c'est des erreurs de compiler ou library un truc comme ca

    aidez nous svp on est vraiment en galère

    • Partager sur Facebook
    • Partager sur Twitter
      10 mai 2019 à 9:56:36

      Si tout était bon, il n'y aurait pas de problème.

      Donc relire sérieusement ce qui concerne le problème - très commun chez les débutants - des "undefined references" sous CodeBlocks.

      C'est un problème avec un fichier source. Il faut indiquer à CodeBlocks, qui ne le devine pas toujours tout seul, qu'on en a besoin pour fabriquer l'exécutable (lors de l'édition des liens).

      -
      Edité par michelbillaud 10 mai 2019 à 9:58:56

      • Partager sur Facebook
      • Partager sur Twitter
        10 mai 2019 à 13:07:53

        Bonjour,

        Cette erreur apparaît au moment de l'édition des liens. Après avoir compilé l'ensemble des fichiers, il faut relier tous les éléments qui sont déclarés à un endroit mais défini ailleurs.
        Ici le symbole 'color' a donc été déclaré et utilisé quelque part. Mais n'a été défini nulle part!

        Il faut se poser la question : "c'est quoi ce symbole ?"
        Si on est sûr de ne jamais l'utiliser, il faut chercher sur internet à quoi sert ce symbole.

        Ensuite "Est-ce que c'est quelque chose que j'ai déclaré ou quelque chose qui vient d'une bibliothèque ?".
        - Dans le premier cas, c'est qu'on a oublié d'écrire la définition ou bien c'est que la définition est dans un fichier que l'on oublié de mettre dans la liste des fichiers à compiler.
        - Dans le second c'est qu'il manque d'ajouter la bibliothèque nécessaire (à ne pas confondre d'avoir utiliser l'include. L'include permet d'accéder aux déclarations d'un bibliothèques mais il faut ajouter la bibliothèque pour avoir les définitions.)

        • Partager sur Facebook
        • Partager sur Twitter

        En recherche d'emploi.

          12 mai 2019 à 12:23:41

          Dalfab a écrit:

          Bonjour,

          Cette erreur apparaît au moment de l'édition des liens. Après avoir compilé l'ensemble des fichiers, il faut relier tous les éléments qui sont déclarés à un endroit mais défini ailleurs.
          Ici le symbole 'color' a donc été déclaré et utilisé quelque part. Mais n'a été défini nulle part!

          Il faut se poser la question : "c'est quoi ce symbole ?"
          Si on est sûr de ne jamais l'utiliser, il faut chercher sur internet à quoi sert ce symbole.

          Ensuite "Est-ce que c'est quelque chose que j'ai déclaré ou quelque chose qui vient d'une bibliothèque ?".
          - Dans le premier cas, c'est qu'on a oublié d'écrire la définition ou bien c'est que la définition est dans un fichier que l'on oublié de mettre dans la liste des fichiers à compiler.
          - Dans le second c'est qu'il manque d'ajouter la bibliothèque nécessaire (à ne pas confondre d'avoir utiliser l'include. L'include permet d'accéder aux déclarations d'un bibliothèques mais il faut ajouter la bibliothèque pour avoir les définitions.)


          Le probléme ici, c'est que j'ai défini color et que je l'utilise du coup l'édition des liens est faite, et en ce qui concerne les bibliothèques je les ai mise, et la j'ai montré le problème pour color, mais nous avons ce problème avec 3-4 autres fonctions :/(voir capture d'écran) 
          • Partager sur Facebook
          • Partager sur Twitter
            12 mai 2019 à 19:03:11

            > du coup l'édition des liens est faite

            Non.

            Pourrais tu stp copier coller l'intégralité des messages d'erreurs qui apparaissent dans la console, avec les commandes de compilation ? Merci

            Le trois-quatre machins en rouge que tu nous fais voir sont des mots des commentaires qui sont absents du dictionnaire anglais, ça n'est d'absolument aucune utilité.

            -
            Edité par michelbillaud 12 mai 2019 à 19:04:13

            • Partager sur Facebook
            • Partager sur Twitter
              12 mai 2019 à 23:41:13

              L'édition des liens dit qu'elle n'est pas possible car la fonction color n'est pas définie. Tu dis l'inverse. Un seul à juste!
              Relis toutes les réponses en particulier celle de michelbillaud
              • Partager sur Facebook
              • Partager sur Twitter

              En recherche d'emploi.

                13 mai 2019 à 8:52:05

                Pour être précis

                • ok tu as déclaré la fonctioncolor() quelque part (un .h je suppose)
                • ok tu as défini la fonction dans un fichier source .c de ton projet
                Que se passe-t-il à l'édition des liens ? L'éditeur de liens - qui fonctionne très bien, merci pour lui - fait les liens (d'où son nom) entre des fichiers objets résultant de la compilation, pour produire l'exécutable. En particulier il s'occupe de faire la correspondance entre les appels de fonction, et le code qui les représente.
                Pourquoi proteste-t-il ? Si il doit s'occuper d'appels à une certaine fonction color(), et que cette fonction ne fait pas partie des modules qu'on lui a dit de coller ensemble, il couine qu'il y a une référence indéfinie. Et il n'a pas tort de le faire, parce quand une référence est indéfinie, ça va pas le faire pour aller exécuter le code qui n'est pas là.
                Mézalor que faire ?Il te reste à dire que le source qui contient la définition de color() fait partie des trucs à rassembler pour fabriquer l'exécutable.
                Mais le dire à qui ? Puisque tu as confié la gestion de ton projet à l'IDE CodeBlocks, c'est lui qui s'occupe de ça.

                -
                Edité par michelbillaud 13 mai 2019 à 12:19:21

                • Partager sur Facebook
                • Partager sur Twitter
                  13 mai 2019 à 20:20:22

                  ok merci les gars j'ai finalement trouvé !! merci beaucoup !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 mai 2019 à 21:40:48

                    Ca serait bien que tu indiques comment on fait, ça pourrait servir pour le prochain qui aura le même problème.

                    Ou toi-même dans la version "zut j'ai déjà eu ça, comment on fait déjà ?".

                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 mai 2019 à 19:03:59

                      bah en fait c'etait juste une super erreur bete, en relisant mon code je me suis apercu que j'avais defini ma fonction color, alors que je l'avais deja utilisée dans mon code avant ^^ du coup ca ne pouvait pas marcher :)
                      • Partager sur Facebook
                      • Partager sur Twitter

                      erreur undefined reference to

                      × 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