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 du Club
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 72
    Points : 61
    Points
    61
    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 085
    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 085
    Points : 208 404
    Points
    208 404
    Billets dans le blog
    88
    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 du Club
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 72
    Points : 61
    Points
    61
    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 085
    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 085
    Points : 208 404
    Points
    208 404
    Billets dans le blog
    88
    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 du Club
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 72
    Points : 61
    Points
    61
    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 085
    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 085
    Points : 208 404
    Points
    208 404
    Billets dans le blog
    88
    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 du Club
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 72
    Points : 61
    Points
    61
    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 591
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 591
    Points : 17 295
    Points
    17 295
    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 du Club
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 72
    Points : 61
    Points
    61
    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 du Club
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 72
    Points : 61
    Points
    61
    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, 13h41
  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, 18h07
  3. Dev C++ et compilation séparé
    Par kuja2053 dans le forum Dev-C++
    Réponses: 3
    Dernier message: 21/03/2007, 18h34
  4. Réponses: 4
    Dernier message: 27/08/2003, 22h34

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