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 :

Erreur compilation pthread_barrier_t Ubuntu


Sujet :

C

  1. #1
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut Erreur compilation pthread_barrier_t Ubuntu
    Bonjour,

    Je suis sous ubuntu 10.10 et je n'arrive pas a compiler les programmes qui utilisent les outils pthread_barrier_t.

    Voici un extrait de code simple qui ne compile pas chez moi.
    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 <pthread.h>
     
    pthread_barrier_t bar;
     
    int main()
    {
      pthread_barrierattr_t bar_attr;
      pthread_barrierattr_init(&bar_attr);
     
      pthread_barrier_init(&bar,&bar_attr,3);
     
      pthread_barrierattr_destroy(&bar_attr);
      pthread_barrier_destroy(&bar);
     
      return 0;
    }
    La commande compilation suivante : gcc -Wall -std=c99 -lpthread test.c
    me renvoie les erreurs suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    test.c:3: error: expected ‘=’, ‘,’, ‘;’, ‘asmor ‘__attribute__’ before ‘bar’
    test.c: In function ‘main’:
    test.c:7: error: ‘pthread_barrierattr_t’ undeclared (first use in this function)
    test.c:7: error: (Each undeclared identifier is reported only once
    test.c:7: error: for each function it appears in.)
    test.c:7: error: expected ‘;’ before ‘bar_attr’
    test.c:8: warning: implicit declaration of function ‘pthread_barrierattr_init’
    test.c:8: error: ‘bar_attr’ undeclared (first use in this function)
    test.c:10: warning: implicit declaration of function ‘pthread_barrier_init’
    test.c:10: error: ‘bar’ undeclared (first use in this function)
    test.c:12: warning: implicit declaration of function ‘pthread_barrierattr_destroy’
    test.c:13: warning: implicit declaration of function ‘pthread_barrier_destroy’
    Par contre les autres méthodes de la library pthread sont reconnues et fonctionnent parfaitement.
    Je sais que dans de nombreux cas il faut déclarer une macro à la compilation pour autoriser l'accès à certaines méthodes de la glibC. Exemple -D_XOPEN_SOURCE -D_POSIX_SOURCE en option de compilation.

    J'ai googler mon problème sans trouver de réponse, et en plus pthread_barrier_t semble être supporté sous Ubuntu...

    Quelqu'un a-t-il une idée?

    Merci de votre aide.
    Mith06

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    Bonjour,

    Ton code d'exemple compile sans problème chez moi (ubuntu 10.04) si tu enlève le -std=c99 dans la ligne de commande.
    Sinon, j'obtiens les mêmes erreurs... ce type n'aurait pas été remplacé par un autre dans la version c99 ?

    Cordialement

  3. #3
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    Effectivement si on compile sans le flag -std=c99 ca marche. Mais je vais avoir besoin de compiler en c99....

    pour infos:

    gcc test.c -lpthread -std=c99 COMPILE PAS
    gcc test.c -lpthread -std=c89 COMPILE PAS
    gcc test.c -lpthread -ansi COMPILE PAS
    gcc test.c -lpthread -pedantic COMPILE
    gcc test.c -lpthread COMPILE
    gcc test.c -lpthread -std=gnu99 COMPILE

    Je vais le faire en gnu99 alors!!!

    Mais je serais intéressé de connaitre le pourquoi du comment de ces erreurs de compilation. Est-ce que quelqu'un pourrait m'éclairer à ce sujet?

    Merci
    Mith

    Merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    Rhooo, le monde est petit..
    C'est Adrien, de l'étage au dessus
    Je viens à peine de m'en apercevoir !

    A demain

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/06/2009, 13h15
  2. [Ubuntu 8.04] Erreurs compilation Code::Blocks
    Par MaliciaR dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 17/10/2008, 23h41
  3. [Débutant]Erreur compilation !
    Par gandalf_le_blanc dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 30/08/2004, 14h23
  4. Trop de message d'erreurs: compilation KO
    Par jeannot27 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/01/2004, 16h45
  5. Erreur compilation DX8.1 VC++ 6
    Par d.vidal dans le forum DirectX
    Réponses: 1
    Dernier message: 10/09/2003, 09h04

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