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
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).
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.)
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)
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é.
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
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.
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
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.
En recherche d'emploi.
En recherche d'emploi.