C / Undefined reference .......
Résolu/Fermé
Wanted59
Messages postés
44
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
15 octobre 2009
-
8 oct. 2009 à 22:29
hapaahamza - 13 août 2014 à 20:53
hapaahamza - 13 août 2014 à 20:53
A voir également:
- Le compte reference est actuellement verrouillé
- Créer un compte google - Guide
- Telephone verrouillé - Guide
- Compte instagram verrouillé - Guide
- Créer un compte gmail - Guide
- Supprimer compte instagram - Guide
12 réponses
Salut,
En fait loupius, a raison, mais il le dit mal. Tu doit linker le fichier libSDL.a(ou quelque chose de semblable) à ton projet, afin que le compilo prenne des informations sur les fonction que tu veut utiliser,si tu utilse CodeBlocks, va dans Projects/Build Target/Linker Settings/Add/.../"Chemin de ton fichier.a(ou '.lib')".
Mais je ne pense pas que ton problème soit dû à cela, c'est juste que ton fichier 'main.c' ne connaisse pas l'implémentation de la fonction jouer(d'ou l'erreur"Undefined reference to 'jouer(SDL_Surface *ecran)'
"). Tu rajoute donc à ton main.cpp
#include "jouer.h"
#include "jouer.c"
Et comme par ... le tout fonctionne(j'espère quand même ne pas avoir dit trop de bêtises).
@+
En fait loupius, a raison, mais il le dit mal. Tu doit linker le fichier libSDL.a(ou quelque chose de semblable) à ton projet, afin que le compilo prenne des informations sur les fonction que tu veut utiliser,si tu utilse CodeBlocks, va dans Projects/Build Target/Linker Settings/Add/.../"Chemin de ton fichier.a(ou '.lib')".
Mais je ne pense pas que ton problème soit dû à cela, c'est juste que ton fichier 'main.c' ne connaisse pas l'implémentation de la fonction jouer(d'ou l'erreur"Undefined reference to 'jouer(SDL_Surface *ecran)'
"). Tu rajoute donc à ton main.cpp
#include "jouer.h"
#include "jouer.c"
Et comme par ... le tout fonctionne(j'espère quand même ne pas avoir dit trop de bêtises).
@+
C'est bien ce qui me semblait, ça a rien à voir avec le débogueur; c'est simplement une erreur de déclaration. En effet, la compilation réclame des informations nécessaires à la construction de l'exécutable, notamment les bibliothèques utilisées. Donc tu dois déclarer l'utilisation de 'SDL'.
Bonne continuation.
Bonne continuation.
Et bien tu dois dire que l'édition des liens doit se faire avec la bibliothèque 'SDL'.
Pour cela, avec QtCreator, édite le fichier ???.pro et ajoute une ligne du style:
Bonne continuation.
Pour cela, avec QtCreator, édite le fichier ???.pro et ajoute une ligne du style:
LIBS += -lSDLEnsuite tu reconstruis le tout avec la commande Build/Rebuild All. Je pense que ça devrait aller.
Bonne continuation.
Il y a quelque chose qui me gêne; pour moi ce n'est pas le débogueur qui donne ce message; il est généré lors de la compilation.
Peut-on avoir tous les messages de la compilation (à moins qu'il y ait plus de 20 lignes) et quelle est exactement la ligne 84 de main.cpp ?
Peut-on avoir tous les messages de la compilation (à moins qu'il y ait plus de 20 lignes) et quelle est exactement la ligne 84 de main.cpp ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Wanted59
Messages postés
44
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
15 octobre 2009
7
9 oct. 2009 à 19:13
9 oct. 2009 à 19:13
Salut, merci de me préter interet :) Alors à la ligne 84 du main .cpp il y a : jouer(ecran); Message entier du débuggueur : ||=== Kuru's fries, Debug ===| obj\Debug\main.o||In function `SDL_main':| Kuru's fries\main.cpp|84|undefined reference to `jouer(SDL_Surface*)'| ||=== Build finished: 1 errors, 0 warnings ===| Voilà voilà.
chuka
Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
378
9 oct. 2009 à 19:48
9 oct. 2009 à 19:48
dsl j'ai posté n'importe quoi avant.....
Wanted59
Messages postés
44
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
15 octobre 2009
7
10 oct. 2009 à 14:52
10 oct. 2009 à 14:52
Merci pour le conseil, mais euh ... c'et quoi déclarer l'utilisation de 'SDL'?
Wanted59
Messages postés
44
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
15 octobre 2009
7
11 oct. 2009 à 10:32
11 oct. 2009 à 10:32
Je comprend pas trop enfaite, car j'ai jamais utilisé qt creator.
Il faut que je créé un fichier du genre editSDL.pro et que j'ajoute une ligne
LIBS += -1SDL mais je l'ajoute où cette ligne?
Pi ensuite je reconstruit quoi? car je comprends pas comment faire du tout là.
Merci de m'expliquer stp pi encore merci de m'avoir répondu :).
Il faut que je créé un fichier du genre editSDL.pro et que j'ajoute une ligne
LIBS += -1SDL mais je l'ajoute où cette ligne?
Pi ensuite je reconstruit quoi? car je comprends pas comment faire du tout là.
Merci de m'expliquer stp pi encore merci de m'avoir répondu :).
Oh, je te prie de m'excuser, j'ai fait une erreur entre deux posts et je croyais que tu utilisais QtCreator.
Donc je suppose que tu utilises la ligne de commande, quelque chose du genre:
gcc -Wall -c main.cpp jeu.c -o jeu
alors modifie ta ligne ainsi:
gcc -Wall -c main.cpp jeu.c -lSDL -o jeu
D'ailleurs, comment se fait-il qu'il y ait un fichier 'c' et un fichier 'cpp' ? Ce n'est pas très cohérent !
Mille excuses pour cette perte de temps.
Donc je suppose que tu utilises la ligne de commande, quelque chose du genre:
gcc -Wall -c main.cpp jeu.c -o jeu
alors modifie ta ligne ainsi:
gcc -Wall -c main.cpp jeu.c -lSDL -o jeu
D'ailleurs, comment se fait-il qu'il y ait un fichier 'c' et un fichier 'cpp' ? Ce n'est pas très cohérent !
Mille excuses pour cette perte de temps.
Wanted59
Messages postés
44
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
15 octobre 2009
7
15 oct. 2009 à 18:59
15 oct. 2009 à 18:59
Ba euh j'utilise aucune ligne de commande, d'ailleur je sais pas de quoi tu me parle là, dsl.
J'ai exactement le meme probleme ( je suis le tuto C sur le site du zero)
Je ne trouve aucune solution j'ai bien mit les #include "jeu.h" et editeur.h mais sa ne marche pas.
J'ai bien mit tout mes fichier dans le projet etc etc
aidez moi
Drave
Je ne trouve aucune solution j'ai bien mit les #include "jeu.h" et editeur.h mais sa ne marche pas.
J'ai bien mit tout mes fichier dans le projet etc etc
aidez moi
Drave
Salut,
tout ce que vous avez dit ne m'a pas été utile, et je pense c'est ce que ça va être pour quelqun, alors ce que m'a aidé est la suite
vous devez aller au dossier de votre projet et supprimer tout fichier nouveau, ça veut que vous n'avez pas crée, et je précise les dossiers bin et obj, et un fichier que son nom contient depend ou qqch comme ca
j'espere que ca va aider
tout ce que vous avez dit ne m'a pas été utile, et je pense c'est ce que ça va être pour quelqun, alors ce que m'a aidé est la suite
vous devez aller au dossier de votre projet et supprimer tout fichier nouveau, ça veut que vous n'avez pas crée, et je précise les dossiers bin et obj, et un fichier que son nom contient depend ou qqch comme ca
j'espere que ca va aider
17 janv. 2013 à 16:43
j'avais inclus le .h mais pas le .c