C'est quoi cette erreur

Fermé
hichem - 27 avril 2007 à 14:26
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 2 mai 2007 à 16:38
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
27 avril 2007 à 15:03
et en inversant ? cc -o Client -lpthread Client.c
0
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
28 avril 2007 à 15:10
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024
30 avril 2007 à 13:12
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617 > dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024
30 avril 2007 à 15:10
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024
1 mai 2007 à 17:51
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
2 mai 2007 à 16:38
memcpy copie hostp->h_length octets de hostp->h_addr dans (void*)&(servaddr.sin_addr.s_addr)

il faut vérifier ces valeurs
0