Probleme de compilation librairie pthread

Probleme de compilation librairie pthread - C - Programmation

Marsh Posté le 26-12-2006 à 17:42:27    

Bonjour a tous,
 
Comme l'indique le sujet, j'ai un petit souci avec l'utilisation de pthread. Au moment de la compilation, j'ai des messages d'erreurs me signifiant que le type pthread_t est déja déclaré ( double déclaration dans /usr/include/pthread.h & /usr/include/bits/pthreadtypes.h ). Le message d'erreur est le suivant :
In file included from main.c:6:
/usr/include/pthread.h:285: error: conflicting types for 'pthread_t'
/usr/include/bits/pthreadtypes.h:152: error: previous declaration of 'pthread_t' was here
J'ai ce message d'erreur pour chaque déclaration de variable, que ce soit pthread_t, pthread_attr_t ou autre.  
J'ai essayé en vain de réinstaller les pthread ou la libc6, mais le souci est toujours la.
 
Si quelqu'un a déja eu le probleme, ou quelqu'un qui pourrait m'aider, ca serait sympa !
 
Merci d'avance

Reply

Marsh Posté le 26-12-2006 à 17:42:27   

Reply

Marsh Posté le 26-12-2006 à 17:48:45    

Est-ce que tu inclues pthreadtypes.h ?

Reply

Marsh Posté le 27-12-2006 à 11:45:16    

Bonjour,
 
Non je n'inclus pas pthreadtypes.h, mais pthread.h directement. Meme une appli toute simple lançant un thread ne marche pas, et je vois pas pourquoi...

Reply

Marsh Posté le 27-12-2006 à 15:31:58    

Raoul85 a écrit :

Bonjour,

 

Non je n'inclus pas pthreadtypes.h, mais pthread.h directement. Meme une appli toute simple lançant un thread ne marche pas, et je vois pas pourquoi...


Compile ça et dit moi quels sont exactement les message d'erreurs (copié-collé)

Code :
  1. /* ATTENTION CODE ERRONE */
  2. #include <stdio.h>
  3. #include <pthread.h>
  4. static void *task_a (void *p_data)
  5. {
  6.    puts ("Hello world A" );
  7.    (void) p_data;
  8.    return NULL;
  9. }
  10. static void *task_b (void *p_data)
  11. {
  12.    puts ("Hello world B" );
  13.    (void) p_data;
  14.    return NULL;
  15. }
  16. int main (void)
  17. {
  18.    pthread_t ta;
  19.    pthread_t tb;
  20.    puts ("main init" );
  21.    pthread_create (&ta, NULL, task_a, NULL);
  22.    pthread_create (&tb, NULL, task_b, NULL);
  23.    puts ("main end" );
  24.    return 0;
  25. }

Message cité 1 fois
Message édité par Emmanuel Delahaye le 27-12-2006 à 15:32:59

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 28-12-2006 à 21:57:42    

Emmanuel Delahaye a écrit :

Compile ça et dit moi quels sont exactement les message d'erreurs (copié-collé)

Code :
  1. /* ATTENTION CODE ERRONE */
  2. #include <stdio.h>
  3. #include <pthread.h>
  4. static void *task_a (void *p_data)
  5. {
  6.    puts ("Hello world A" );
  7.    (void) p_data;
  8.    return NULL;
  9. }
  10. static void *task_b (void *p_data)
  11. {
  12.    puts ("Hello world B" );
  13.    (void) p_data;
  14.    return NULL;
  15. }
  16. int main (void)
  17. {
  18.    pthread_t ta;
  19.    pthread_t tb;
  20.    puts ("main init" );
  21.    pthread_create (&ta, NULL, task_a, NULL);
  22.    pthread_create (&tb, NULL, task_b, NULL);
  23.    puts ("main end" );
  24.    return 0;
  25. }



 
 
Bonsoir,
Désolé pour le retard, mais je n'ai pas souvent l'occasion de me connecter. L'exemple que vous m'avez fourni compile normalement, aucune erreurs ni warning, et tourne. Je commence a me poser des questions sur mes inclusions de fichier, car j'inclus stdlib.h et pthread.h, car j'utilise l'appel a exit() et les threads. En virant la stdlib, aucune erreur, mais des warning sur le exit. Je vous tiens au courant !
Merci !
 
Edit : en faisant l'inclusion de stdlib.h apres pthread.h, plus aucune erreur, ca tourne !
Merci encore pour votre aide !


Message édité par Raoul85 le 28-12-2006 à 22:00:01
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed