LA COMPILATION SEPAREE

Fermé
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 - 1 oct. 2016 à 09:09
baladur13 Messages postés 46391 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 23 avril 2024 - 1 oct. 2016 à 15:29
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 :

//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.


2 réponses

Utilisateur anonyme
1 oct. 2016 à 15:17
Ces fonctions n'existent pas dans ton code, il faut les créer
0
baladur13 Messages postés 46391 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 23 avril 2024 13 219
1 oct. 2016 à 15:29
Bonjour,
Prière de continuer sur la première conversation..
https://forums.commentcamarche.net/forum/affich-33954633-le-mastermind-numerique#newanswer
Merci
0