pthread_create et méthode de classe
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
Code:
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);
} |
ModemGPRS.cpp
Code:
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);
} |
Et à la compilation, j'ai un beau :
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 !