Bonjour,
Je cherche � donner en param�tre � la fonction pthread_create une m�thode de classe. J'ai lu la FAQ et j'ai repris le code propos�, seulement j'ai des erreurs de compilation ... voici le code :
ModemGPRS.h
ModemGPRS.cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include<pthread.h> class ModemGPRS{ private: pthread_t *m_thread; pthread_mutex_t *m_mutex; static void *staticFunToGestionModem(void *arg); public: /* a part constructeur, destructeur et autres */ void *gestionModem(); void run(pthread_mutex_t *mutex); }
Et � la compilation, j'ai un beau :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void *ModemGPRS::gestionModem() { /* blabla */ } void *ModemGPRS::staticFunToGestionModem(void *arg) { ModemGPRS *mod = reinterpret_cast<ModemGPRS*>(arg); return mod->gestionModem(); } void ModemGPRS::run(pthread_mutex_t *mutex) { m_mutex = mutex; pthread_create(m_thread, NULL, staticFunToGestionModem, NULL); }
build/Debug/GNU-Linux-x86/ModemGPRS.o: In function ModemGPRS::run(pthread_mutex_t*)':
/home/Documents/routeur/ModemGPRS.cpp:339: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/routeur] Erreur 1
make[1]: *** [.build-conf] Erreur 2
make: *** [.build-impl] Erreur 2
Je ne comprends vraiment pas pourquoi il ne trouverait pas la fonction (sachant que quand je la remplissais mal, y'avait pas de soucis, il me disait bien que �a marchait pas comme il voulait ^^) .
Je vous remercie d'avance !
Partager