IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

[Résolus]probleme d'include : undefined reference to 'x'


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 28
    Par défaut [Résolus]probleme d'include : undefined reference to 'x'
    Bonjour,

    Je souhaite diviser mon programme en plusieurs partie et lorsque je compile mon main j'obtiens ce message :

    main.c:(.text.startup+0x29): undefined reference to `createLabyrinth'
    
    main.c:(.text.startup+0x31): undefined reference to `afficheLabyrinth'
    j'utilise geany

    Mon fichier main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    #include <stdio.h>
    #include <stdlib.h>
    #include "graphics.h"
    #include "labyrinthe.h"
     
    int main()
    {
    	init_graphics(MAX,MAX);	
    	Case L[NBCASELONG][NBCASELARGE];
     
    	createLabyrinth(L);
    	afficheLabyrinth(L);
     
    	wait_escape();
    	exit(0);
    }
    labyrinthe.c contient bien labyrinthe.h et ses fonctions et labyrinthe.h est comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include <stdio.h>
    #include <stdlib.h>
     
    #define WALL 1 
    #define PATH 0
    #define MAX 600
    #define MAX 600
    #define LONGUEURCASE 30
    #define LARGEURCASE 30
    #define NBCASELONG MAX/LONGUEURCASE
    #define NBCASELARGE MAX/LARGEURCASE
    #define RAYON (LONGUEURCASE/2.2)
     
     typedef struct Case{
    	POINT pos;
    	int mh; // mur haut
    	int mg; // mur gauche
    	int md; // mur droit
    	int mb; // mur bas
    }Case;
     
    typedef struct Direction{
    	int VectX;
    	int VectY;
    }Direction;
     
     Direction initDirection();
     Direction changeDirection(Direction dir, int deplace);
     void initLabyrinth(Case L[NBCASELONG][NBCASELARGE]);
     int connecte(Case connect[], Case c, int nbConnect);
     void createLabyrinth(Case L[NBCASELONG][NBCASELARGE]);
     void afficheCase(Case c);
     void afficheLabyrinth(Case L[NBCASELONG][NBCASELARGE]);
    j'ai oublié quelque chose mais je vois pas et lorsque dans le main je supprime les 2 lignes create et affiche du coup j'ai bien mon graphique qui s'affiche mais rien dedans ce qui est normal

    merci de votre aide

  2. #2
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Tes procédures ont été mises dans d'autres fichiers ?

    Il faudrait "plutôt" les déclarer dans les .h associés à ces fichiers (simplement pour rester bien organisé), et ne pas oublier ces fichiers dans la ligne de compilation ! (les .h ne sont pas nécessaires à la compilation, tant qu'ils sont bine en include)

    EDIT : tu cherches à générer des .o ou le binaire final ?
    Si tu ne veux faire que des .o sans linker, n'oublie pas l'argument "-c" à gcc !
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 28
    Par défaut
    geany compile automatiquement , je compile pas par le terminal :/

  4. #4
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Hmmm... je ne peux pas vraiment installer de logiciel là où je suis (ni spécialement envie de tester geany pour te l'avouer ^^'), mais sur un screenshot je vois un menu "Projet"... et "Build" !

    As-tu par hasard des champs quelque part dans ces menus te permettant de mettre plusieurs sources dans le projet ?

    L'erreur qui t'est remontée t'indique en fait qu'il n'arrive pas à créer un exécutable, car 2 fonctions "déclarées ailleurs" n'arrivent pas à être liées à ton fichier main.c
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 28
    Par défaut
    Donc en fait si je prends par le terminal je devrais écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -Wall labyrinthe.c main.c -o main
    c'est bien ça ?

  6. #6
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Si toutes tes sources sont dans ces 2 fichiers, oui !
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'include : undefined reference to 'x'
    Par majan dans le forum Débuter
    Réponses: 3
    Dernier message: 28/04/2013, 13h16
  2. Réponses: 9
    Dernier message: 01/09/2012, 01h50
  3. Réponses: 7
    Dernier message: 13/03/2009, 17h36
  4. Probleme de compilation (undefined reference to)
    Par Verbalinsurection dans le forum C++
    Réponses: 9
    Dernier message: 01/10/2007, 10h50
  5. Réponses: 1
    Dernier message: 19/07/2007, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo