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

Bibliothèques, systèmes et outils C Discussion :

pthread et compilation séparé.


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Points : 74
    Points
    74
    Par défaut pthread et compilation séparé.
    Bonjour.

    Je sur sur un projet en pthread pour mes études ( L3 info).
    Le but du programme est de faire "une simulation de combat de robots", bon c'est juste histoire de travailler avec des threads.

    Je rencontre une erreur de segmentation, je me dit pas de problème on vas tester gdb.
    Je rajouter -g dans le makefile et je relance la compilation.
    Et je me retrouve avec ces trois erreurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    main.c:(.text+0xe2): undefined reference to 'initialiserGrille'
    main.c:(.text+0xf8): undefined reference to 'afficherGrille'
    main.c:(.text+0x1d4): undefined reference to 'routineRobot'
    C'est le nom des trois seul fonctions que j’appelle dans mon main.
    Si je retire le -g le code compile sans erreur ni avertissement et à l’exécution les fonction sont bien appelé correctement ( en tout cas pour initialiserGrille)

    C'est la première fois que je rencontre une erreur dans ce genre sur des fonctions.
    Je voulait régler un problème mais en voila un autre

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Peut on voir le makefile une fois que vous avez ajouter l'option -g ? Même si je doute que ce soit ça la base d problème.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Points : 74
    Points
    74
    Par défaut
    Pas de problème

    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
     
    CC =	gcc
    LD =	gcc
     
    CFLAGS =	-cg
    WFLAGS =	-pthread
    DFLAGS =	
     
     
    a.out: main.o source.o robot.o grille.o piege.o affichage.o
    	$(LD) -o $@ $^ $(WFLAGS)
     
    main.o: main.c source.h structure.h paramettre.h robot.h grille.h piege.h affichage.h
    	$(CC) $(CFLAGS) $< $(WFLAGS) $(DFLAGS)
     
    source.o: source.c structure.h paramettre.h robot.h grille.h piege.h affichage.h
    	$(CC) $(CFLAGS) $< $(WFLAGS) $(DFLAGS)
     
    piege.o: piege.c structure.h paramettre.h robot.h grille.h source.h affichage.h
    	$(CC) $(CFLAGS) $< $(WFLAGS) $(DFLAGS)
     
    robot.o: robot.c structure.h  paramettre.h grille.h piege.h source.h affichage.h
    	$(CC) $(CFLAGS) $< $(WFLAGS) $(DFLAGS)
     
    grille.o: grille.c structure.h paramettre.h robot.h piege.h source.h affichage.h
    	$(CC) $(CFLAGS) $< $(WFLAGS) $(DFLAGS)
     
    affichage.o: affichage.c  structure.h paramettre.h grille.h robot.h piege.h source.h
    	$(CC) $(CFLAGS) $< $(WFLAGS) $(DFLAGS)

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Effectivement, il y a une option -c , qui demande de ne pas executé le linker. Et puis en théorie c'est -g tout court ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Points : 74
    Points
    74
    Par défaut
    Avec juste le -g toujours les même erreurs à la compilation.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par ben51 Voir le message
    Avec juste le -g toujours les même erreurs à la compilation.
    Oui mais si vous enlever le -c du makefile, meme pour le mode non debug ... vous allez avoir les memes erreur, car les erreurs proviennent de votre code (ou de la facon dont vous compiler). Le -g n'a pas vraiment d'effet.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Points : 74
    Points
    74
    Par défaut
    J'ai réglé le problème de segmentation.

    Par contre toujours ce problème avec -g.

    Avec juste le -c mon code compile bien et je peut l'exécuter.

    Je ne vois pas ce que j'ai mal fait :/
    Enfin dans mon code, dans lemain j'ai bien les includes vers les .h de ces fonctions.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ben51 Voir le message
    C'est la première fois que je rencontre une erreur dans ce genre sur des fonctions.
    Je voulait régler un problème mais en voila un autre
    es-tu sûr que tes déclarations sont bien dans le source.h, qui doit être inclus dans le main.c, et que dans le source.c elle ne sont pas déclarées en static ?

    es-tu sûr de l'orthographe des noms des fonctions ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    es-tu sûr que tes déclarations sont bien dans le source.h, qui doit être inclus dans le main.c,
    Oui c'est le cas.
    Citation Envoyé par souviron34 Voir le message
    et que dans le source.c elle ne sont pas déclarées en static ?
    ? une fonction static ? en objet (c++) je vois comme ça fonctionne mais là je vois pas
    Voila le code de affichage.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include "affichage.h"
     
    void * afficherGrille(void *arg)
    {
    	/***code de la fonction*/
    }

    Citation Envoyé par souviron34 Voir le message
    es-tu sûr de l'orthographe des noms des fonctions ?
    J'ai bien vérifier l'orthographe et elle sont bien appelé durant l'exécution.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Points : 74
    Points
    74
    Par défaut
    je vient de trouvé mon erreur c'est -c -g et pas -cg

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CC =	gcc
    LD =	gcc
     
    CFLAGS =	-c -g //-cg
    WFLAGS =	-pthread
    DFLAGS =

    Merci pour l'aide

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

Discussions similaires

  1. Compilation séparé GTK en C
    Par YoshioToutou dans le forum C
    Réponses: 4
    Dernier message: 22/04/2011, 12h41
  2. Aide installation de la sdl et compilation séparé
    Par chrisdayton dans le forum Débuter
    Réponses: 3
    Dernier message: 21/12/2009, 17h07
  3. Dev C++ et compilation séparé
    Par kuja2053 dans le forum Dev-C++
    Réponses: 3
    Dernier message: 21/03/2007, 17h34
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34

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