#1 Le 19/10/2007, à 22:25
- Anonymouse
[Résolu] [Langage C] Impossible de compiler:
Bonjour
J'essaye de compiler un programme en c qui génère un thread or si la compilation marche à l'université (Pc sous Ubuntu) elle échoue chez moi.
Le problème doit venir des librairies mais je n'ai pas trouvé de réponses à mon problème sur le net.
Voici la ligne et les erreurs me posant problème:
meuh@ubuntu:~/Desktop/Nouveau dossier/Code à compléter$ cc −D_REENTRANT talk.c −o talk −lpthread
cc: −D_REENTRANT : Aucun fichier ou répertoire de ce type
cc: −o : Aucun fichier ou répertoire de ce type
cc: −lpthread : Aucun fichier ou répertoire de ce type
Avez vous une idée du problème?
Merci d'avance de vos réponses:P
Dernière modification par Anonymouse (Le 19/10/2007, à 23:47)
Hors ligne
#2 Le 19/10/2007, à 22:46
- AuraHxC
Re : [Résolu] [Langage C] Impossible de compiler:
Je pense qu'ils ont des librairies d'installé que tu ne possède pas.
Le mieux serait peut être de posé la question à l'administrateur de ton université pour lui demander ce qu'il a installé de particulier parce que ca peut être des librairies typiquement fait par tes profs, genre dans mon université je devais a un moment utiliser une librairie graphique fait par un de mes profs donc a part la prendre à la fac et la mettre sur mon système pas d'autre solution.
Sinon pour les options que tu donne, -D c'est bien pour le preprocessing ?? en gros ton -D_REENTRANT c'est comme si tu faisais un #define _REENTRANT dans ton programme (je tente de me souvenir de ca parce que j'utilise pas cette option) et ton -lpthread c'est pour charger les headers qui se trouve dans le dossier pthread ou une librairie.
Par contre le -o qui fonctionne pas c'est étonnant vu que c'est pour donner le nom de ton executable. Je pense pas que ca vient de ca mais pourquoi tu tape pas gcc au lieu de cc => cc -> compilateur C (général); gcc -> GNU compilateur C
Dernière modification par AuraHxC (Le 19/10/2007, à 22:48)
Hors ligne
#3 Le 19/10/2007, à 23:03
- yugo
Re : [Résolu] [Langage C] Impossible de compiler:
j'ai du mal à croire que la commande que tu entres donne ce résultat...
normalement cc pointe vers gcc (en tout cas chez moi).
par curiosité: ls -l /etc/alternatives/cc , ça donne quoi?
sinon pour avoir les en têtes, installe le paquet libc6-dev, ou mieux, le méta-paquet build-essential
Dans la vie il y a 3 sortes d'imbéciles: ceux qui doutent de tout et ceux qui doutent de rien
Hors ligne
#4 Le 19/10/2007, à 23:22
- Anonymouse
Re : [Résolu] [Langage C] Impossible de compiler:
Je pense qu'ils ont des librairies d'installé que tu ne possède pas.
Le mieux serait peut être de posé la question à l'administrateur de ton université pour lui demander ce qu'il a installé de particulier parce que ca peut être des librairies typiquement fait par tes profs, genre dans mon université je devais a un moment utiliser une librairie graphique fait par un de mes profs donc a part la prendre à la fac et la mettre sur mon système pas d'autre solution.Sinon pour les options que tu donne, -D c'est bien pour le preprocessing ?? en gros ton -D_REENTRANT c'est comme si tu faisais un #define _REENTRANT dans ton programme (je tente de me souvenir de ca parce que j'utilise pas cette option) et ton -lpthread c'est pour charger les headers qui se trouve dans le dossier pthread ou une librairie.
Par contre le -o qui fonctionne pas c'est étonnant vu que c'est pour donner le nom de ton executable. Je pense pas que ca vient de ca mais pourquoi tu tape pas gcc au lieu de cc => cc -> compilateur C (général); gcc -> GNU compilateur C
le -lpthread effectue le lien avec la bibliothèque des threads.
Pour le _REENTRANT j'avoue que c'est une commande du prof que je n'ai pas trop comprise je lui demanderai la prochaine fois.
L'explication se trouve en anglais ici: http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html
Que je tape gcc ou cc cela me fait la même chose
j'ai du mal à croire que la commande que tu entres donne ce résultat...
normalement cc pointe vers gcc (en tout cas chez moi).
par curiosité: ls -l /etc/alternatives/cc , ça donne quoi?sinon pour avoir les en têtes, installe le paquet libc6-dev, ou mieux, le méta-paquet build-essential
Bah en fait le code que j'ai tapé ne compile pas:
-Sur mon PC: ubuntu feisty fawn
-Sur le pc de mes parents xubuntu
Le paquet build-essential est bien installé
Un ls -l /etc/alternatives/cc me donne:
lrwxrwxrwx 1 root root 12 2007-09-09 03:45 /etc/alternatives/cc -> /usr/bin/gcc
Merci de votre aide
Dernière modification par Anonymouse (Le 19/10/2007, à 23:24)
Hors ligne
#5 Le 19/10/2007, à 23:38
- AuraHxC
Re : [Résolu] [Langage C] Impossible de compiler:
je viens de faire un test just for fun :
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int iret1, iret2;
/* Create independent threads each of which will execute function */
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
/* Wait till threads are complete before main continues. Unless we */
/* wait we run the risk of executing an exit which will terminate */
/* the process and all threads before the threads have completed. */
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
avec un :
nicolas@nicolas-laptop:~/Desktop$ gcc -lpthread thread.c -o thread
nicolas@nicolas-laptop:~/Desktop$ ./thread
Thread 1
Thread 2
Thread 1 returns: 0
Thread 2 returns: 0
nicolas@nicolas-laptop:~/Desktop$
Donc pas de soucis de mon coté et j'ai rien installé de particulier a part build-essential.
Hors ligne
#6 Le 19/10/2007, à 23:47
- Anonymouse
Re : [Résolu] [Langage C] Impossible de compiler:
Je viens de compiler avec ta commande et il n'y a pas de problèmes je crois que je ne vais pas chercher plus loin.
Je te remercie de ton aide précieuse
Hors ligne
#7 Le 20/10/2007, à 11:19
- AuraHxC
Re : [Résolu] [Langage C] Impossible de compiler:
De rien
Amuse toi bien avec les threads
Hors ligne