C'est quoi cette erreur

hichem -  
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour
j'ai deux programmes client/serveur lrsque je compile avec cc Client.c -lpthread -o Client, le comilateur retourne l'erreur suivante:
/usr/lib/gcc/i386-redhat-linux/4.1.0/../../../crt1.0 : in function '_start': référence indéfinie vers main
collect 2: ld a retourné 1 code d'état d'exécution.
SVP de quoi s'agit il.merci

2 réponses

dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
et en inversant ? cc -o Client -lpthread Client.c
0
natalie
 
bonjour
meme en inversant c'est toujours la meme erreur pour le client. SVP qu'est ce je dois faire pour corriger cette erreur. Y a t 'il une solution?
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
Est ce que Client.c contient bien int main() ?

et comme ça:
cc -c Client.c
cc -o Client Client.o -lpthread
0
hichem > dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour
le programme client.c contient int main (int arg c, char* argv[]).
je tape cc -c client.c puis cc -o client.o -lpthread et toujours il s'agit de la meme erreur. j'essaye alors avec gcc -g client.c -o client et le compilateur retourne les erreurs suivantes :
[root@localhost ~]# gcc -g Client_VoIP.c -o Client_VoIP

Client_VoIP.c:398:2: attention : pas de retour chariot à la fin du fichier

/usr/lib/gcc/i386-redhat-linux/4.1.0/../../../crt1.o: In function `_start': référence indéfinie vers « main »

/tmp/cceFZ76M.o: In function `main':/root/Client_VoIP.c:370: référence indéfinie vers « pthread_create »

:/root/Client_VoIP.c:374: référence indéfinie vers « pthread_create »

:/root/Client_VoIP.c:386: référence indéfinie vers « pthread_detach »

:/root/Client_VoIP.c:387: référence indéfinie vers « pthread_detach »

collect2: ld a retourné 1 code d'état d'exécution

[root@localhost ~]# gdb ./Client_VoIP

GNU gdb Red Hat Linux (6.3.0.0-1.122rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"..../Client_VoIP: Aucun fichier ou répertoire de ce type.

(gdb) run
Starting program:
No executable file specified.
Use the "file" or "exec-file" command.
(gdb) if ( nbytes > 0 ) process_request(workorderp);

SVP de quoi s'agit-il ?je suis totalement perdue et j'ai besion de trouver une solution à ce problème dans quelques jours.
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641 > dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention  
 
et avec gcc -g Client_VoIP.c -o Client_VoIP -lpthread ?
que contient la ligne Client_VoIP.c:398: ?
et en compilant un autre fichier C, ça marche ?
il ya client.c et Client_VoIP.c. Il faut soit compiler tout les .c ensembles soit chaque .c avec l'option -c puis link-editer tout
ca avec -o executable.
Si le main est dans client.c, on ne peut pas créer un executable avec Client_VoIP.c

cc -c prog1.c # contient main
cc -c prog2.c
cc -c prog3.c
cc -o prog prog1.o prog2.o prog3.o -lpthread
0
hichem > dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention  
 
salut
je tape gcc -g Client.c -lpthread -o client et le compilateur ne retourne aucune faute, le client commence la transmission mais il ne s'arrete jamais et mnt le serveur retourne une erreur de segmentation. en plus normalement il ya un fichier qui doit etre crée mais lorsque je fais cat non fichier rien ne s'affiche et lorsque je fais kedit non fichier , le fichier est vide. SVP c'est quoi le problème.Merci bien.
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
memcpy copie hostp->h_length octets de hostp->h_addr dans (void*)&(servaddr.sin_addr.s_addr)

il faut vérifier ces valeurs
0