cs_Defaite
Messages postés60Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention10 mai 2007
-
23 avril 2007 à 17:51
cs_Defaite
Messages postés60Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention10 mai 2007
-
24 avril 2007 à 21:37
Bonjour à tous.
Je suis actuellement sous WinXP et Ubuntu 6.10 et j'utilise Code::blocks pour developper un programme multi-threads. Ce programme marche bien sous XP grace au pthread mais impossible de le faire fonctionner sous Ubuntu...
Les erreurs varient des que je change un peu de code mais ce qu'il faut savoir, c'est que j'ai rien installé sur Ubuntu comparé à Windows où il faut mettre tout un tas de fichiers (.lib, .a et .dll)
Voila, si quelqu'un à une idée, je le remercie par avance :)
Defaite
"Remember are brothers...Everything is possible."
cs_Defaite
Messages postés60Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention10 mai 2007 24 avril 2007 à 11:22
C'est bon, j'ai trouvé.
En fait, sous Code::Blocks, il faut linker la ligne -lpthread.
Voici comment faire :
- Aller dans " Project " puis " Build Options "
- Dans la nouvelle fenêtre, il faut cliquer sur le nom du projet dans la liste de gauche (tout en haut) puis selectionner " Linker " ou " Linker settings " ca depend (à droite).
- Pour Windows, il fallait ajouter les .lib et .a dans le menu de gauche alors que pour Linux (Ubuntu), il faut ajouter la ligne suivante dans la partie droite :
-lpthread
- Valider et compiler
Merci Xenul et DeathCrash pour vos lumières.
<hr />Defaite - "Remember are brothers...Everything is possible."
-[ Defaite.fr] <hr />
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 23 avril 2007 à 19:38
Pour tout ce qui est thread tu dois aussi avoir la lib posix sous les systemes Unix, vérifie quel est bien installé est que tes var d'environnement de ton compilo pointe bien sur le dossier lib.
cs_Defaite
Messages postés60Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention10 mai 2007 24 avril 2007 à 09:35
Merci pour vos réponses.
Dans mes paquets installés, j'ai bien libpthread20 mais pas libpthread-dev. Lorsque je veux l'installer, par un apt-get ou synaptic, il me dit que "/usr/include/pthread.h" appartient aussi au paquet libc6-dev...
Bon, de toute manière, j'ai bien les entetes. Pour les libs c'est autre chose, savez-vous où elles se trouvent ?
Defaite "Remember are brothers...Everything is possible."
Xenul
Messages postés35Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention28 octobre 2007 24 avril 2007 à 09:47
la libpthread.a sert lors de la compilation, cependant il faut le pthread.h dans les sources, donc si tu l'a pas (locate pthread.h dans un terminal), installe la libc6-dev etc, mais je pense que l'as ^^ : "il me dit que "/usr/include/pthread.h" appartient aussi au paquet libc6-dev"
cs_Defaite
Messages postés60Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention10 mai 2007 24 avril 2007 à 09:57
Ouai, je l'ai bien dans "/usr/include"
Faut il que je declare les libs dans Code::blocks ? (dans "linker" ) Et si oui, lequelles ?
J'ai trouvé pas mal de docs dessus, mais que pour Win, ce que j'ai fait d'ailleurs et qui marche très bien. Seulement, dans le pack de Win que j'ai dl, j'avais bien les lib...
En fait, maintenant, dans mon code j'ai bien #include (pas d'erreur sur cette ligne lors de la compilation) mais les erreurs qu'il me fait sont du aux " pthread_create " ou " pthread_join " qui sont des références indéfinies...
Defaite "Remember are brothers...Everything is possible."