Le Mastermind Numerique
Fermé
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
-
Modifié par jeandchanel le 30/09/2016 à 10:40
Utilisateur anonyme - 6 oct. 2016 à 15:38
Utilisateur anonyme - 6 oct. 2016 à 15:38
A voir également:
- Le Mastermind Numerique
- Pavé numérique bloqué - Guide
- Clavier numérique bloqué - Guide
- Signature numérique word - Guide
- Identité numérique la poste danger - Télécharger - Confidentialité
- Carte identité numérique - Accueil - Services publics
2 réponses
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
649
30 sept. 2016 à 10:31
30 sept. 2016 à 10:31
Salut,
Ta fonction debutPartie on ne la voit pas, tu l'as déclarée dans un autre fichier non?
Déclarer des variables globales est très déconseillé, c'est étonnant que votre prof ne vous l'ai pas dis.
Je trouve ça dommage que tu ais fais tout un bloc "moche", ce n'est pas facile/agréable à lire, tu aurais du utiliser des prototypes, c'est mieux pour toi et pour ton lecteur.
Ta fonction debutPartie on ne la voit pas, tu l'as déclarée dans un autre fichier non?
Déclarer des variables globales est très déconseillé, c'est étonnant que votre prof ne vous l'ai pas dis.
Je trouve ça dommage que tu ais fais tout un bloc "moche", ce n'est pas facile/agréable à lire, tu aurais du utiliser des prototypes, c'est mieux pour toi et pour ton lecteur.
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
3 oct. 2016 à 16:19
3 oct. 2016 à 16:19
Bonjour,
J'ai un soucis avec mon IDE (Cloud9, IDE en ligne !) . Je ne sais pas si c'est moi ou c'est l'IDE qui déconne? Enfin bon, voici le problème, je voudrais faire la compilation séparée et j'ai donc créer 02 fichiers pour mon jeu a savoir jeu.c (qui contient toutes les fonctions a utiliser dans mon jeu) et jeu.h (qui contient tous les prototypes des fonctions créer dans jeu.c) ensuite j'ai inclus le fichier jeu.h dans les fichiers jeu.c et main.c (qui s'appelle mastermind.c) voici d'ailleurs les 03 fichiers :
...Mais a ma grande surprise voici la reponse de mon IDE (Cloud9) :
Running "/home/ubuntu/workspace/Le_Mastermind2/mastermind.c"
/tmp/ccCkUGpF.o: In function `main':
mastermind.c:(.text+0x90): undefined reference to `debutPartie'
mastermind.c:(.text+0x9f): undefined reference to `demanderModeJeu'
mastermind.c:(.text+0xe7): undefined reference to `demanderNiveauJeu'
mastermind.c:(.text+0x259): undefined reference to `nombreAleatoire'
mastermind.c:(.text+0x2ad): undefined reference to `lire'
mastermind.c:(.text+0x4bd): undefined reference to `lireLong'
mastermind.c:(.text+0x4fd): undefined reference to `lireLong'
mastermind.c:(.text+0x53b): undefined reference to `combiAleatoire'
mastermind.c:(.text+0x596): undefined reference to `lire'
mastermind.c:(.text+0x831): undefined reference to `rejouerPartie'
collect2: error: ld returned 1 exit status
Process exited with code: 1
Espérant avoir posé clairement le problème, j’attends impatiemment vos réponses, merci d'avance a vous les experts du langage C.
J'ai un soucis avec mon IDE (Cloud9, IDE en ligne !) . Je ne sais pas si c'est moi ou c'est l'IDE qui déconne? Enfin bon, voici le problème, je voudrais faire la compilation séparée et j'ai donc créer 02 fichiers pour mon jeu a savoir jeu.c (qui contient toutes les fonctions a utiliser dans mon jeu) et jeu.h (qui contient tous les prototypes des fonctions créer dans jeu.c) ensuite j'ai inclus le fichier jeu.h dans les fichiers jeu.c et main.c (qui s'appelle mastermind.c) voici d'ailleurs les 03 fichiers :
//fichier jeu.h en entier pour le jeu " Mastermind Numerique " #ifndef DEF_JEU #define DEF_JEU #define SOLO 1 #define MULTI 2 typedef struct Niveau Niveau; struct Niveau { char nomNiveau[100]; int coupsMax; int nbChiffre; }; Niveau niveaux[] = { {"Facile", 15, 4}, {"Moyen", 12, 5}, {"Difficile", 10, 6} }; extern void viderBuffer(); extern int lire(char* chaine, int longueurChaine); extern long lireLong(); extern void debutPartie(); extern long demanderModeJeu(long modeJeu); extern Niveau demanderNiveauJeu(long choixNiveau); extern void nombreAleatoire(char *combinaison, Niveau niveauJeu); extern void combiAleatoire(char *combinaison, int nbChiffre); extern bool rejouerPartie(); #endif //Un extrait du fichier jeu.c pour le jeu " Mastermind Numerique " #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <stdbool.h> #include "jeu.h" void viderBuffer() { int c = 0; while(c != '\n' && c != EOF) { c = getchar(); } } //Un extrait du fichier mastermind.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <stdbool.h> #include "jeu.h" #define TAILLE_MAX 25 void viderBuffer();
...Mais a ma grande surprise voici la reponse de mon IDE (Cloud9) :
Running "/home/ubuntu/workspace/Le_Mastermind2/mastermind.c"
/tmp/ccCkUGpF.o: In function `main':
mastermind.c:(.text+0x90): undefined reference to `debutPartie'
mastermind.c:(.text+0x9f): undefined reference to `demanderModeJeu'
mastermind.c:(.text+0xe7): undefined reference to `demanderNiveauJeu'
mastermind.c:(.text+0x259): undefined reference to `nombreAleatoire'
mastermind.c:(.text+0x2ad): undefined reference to `lire'
mastermind.c:(.text+0x4bd): undefined reference to `lireLong'
mastermind.c:(.text+0x4fd): undefined reference to `lireLong'
mastermind.c:(.text+0x53b): undefined reference to `combiAleatoire'
mastermind.c:(.text+0x596): undefined reference to `lire'
mastermind.c:(.text+0x831): undefined reference to `rejouerPartie'
collect2: error: ld returned 1 exit status
Process exited with code: 1
Espérant avoir posé clairement le problème, j’attends impatiemment vos réponses, merci d'avance a vous les experts du langage C.
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
649
3 oct. 2016 à 16:28
3 oct. 2016 à 16:28
Il faut les déclarer en public les prototypes il me semble.
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
>
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
3 oct. 2016 à 16:49
3 oct. 2016 à 16:49
comment ca ? un exemple s'il vous plait !
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
649
3 oct. 2016 à 21:48
3 oct. 2016 à 21:48
public void viderBuffer();
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
>
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
4 oct. 2016 à 08:45
4 oct. 2016 à 08:45
Ok, j'essaie et je vous rend compte !
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
>
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
4 oct. 2016 à 10:47
4 oct. 2016 à 10:47
@Pierre1310
Ca ne marche pas !
Ca ne marche pas !
1 oct. 2016 à 08:36
Ta fonction debutPartie on ne la voit pas, tu l'as déclarée dans un autre fichier non?
Il s'agit de la compilation séparée ! la fonction debutPartie() se trouve dans le fichier jeu.c