"linked error" en C

thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005 - 21 sept. 2004 à 19:19
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 - 23 sept. 2004 à 00:51
voila j'ai devc++ sous windows XP
j'ai lu un tuto sur comment manier les sockets...

voici mon code :
void Scann(char buffer[],int port)
{

WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);

SOCKET sock;
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr(buffer);
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sock = socket(AF_INET,SOCK_STREAM,0);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));

if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)))
{
printf("La connection à %s:%d a échoué\n");
}
else{
printf("La Connection à %s:%d a Réussie...\n");
}

closesocket(sock);
WSACleanup();

}

mais lorsque je veut compile j'ai des erreurs de type :


[Linker error] undefined reference to `WSAStartup@8'
[Linker error] undefined reference to `inet_addr@4'
[Linker error] undefined reference to `htons@4'
etc...

comment dois-je faire pour compiler???merci d'avance!!!!
:big)

7 réponses

thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005
21 sept. 2004 à 19:20
j'ai oublier de dire, dans mes includes j'ai

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <winsock2.h>

#pragma comment(lib, "ws2_32.lib")

;-)
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
21 sept. 2004 à 19:41
#pragma comment(lib, "ws2_32.lib") <=== inefficace avec GCC

Faut ajouter -lsw2_32 dans ta ligne de compilation, je sais pas où c'est dans DevC++... Sûrement quelque part dans les options du projet.
0
thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005
21 sept. 2004 à 19:54
ça change rien...snif....
j'ai une erreur sur le makefiel en plus...lol
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
21 sept. 2004 à 20:10
Paste ton Makefile, on va voir ce qui va pas (et vazyléon).

PS : j'espère que t'as pas copié/collé ce que je t'ai donné, j'ai inversé le "w" et le "s", c'est bien sûr -lws2_32 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thebadskull Messages postés 20 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 29 mai 2005
21 sept. 2004 à 20:14
nikel!!!!
merci beaucoup !!!!
0
cs_oshin Messages postés 50 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 8 août 2009
22 sept. 2004 à 16:15
Sa me dis sa quand je met ton truc :

g++: -lws2_32: linker input file unused since linking not done

Je comprends pas ... Voici mon code pr le moment :

#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);

SOCKET sock;
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("217.174.201.103");
sin.sin_family = AF_INET;
sin.sin_port = htons(6667);
sock = socket(AF_INET,SOCK_STREAM,0);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
}

Vous avez une idée ?
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
23 sept. 2004 à 00:51
Ce message apparaît lorsque des libs sont spécifiées alors qu'on demande juste une compilation (et donc, pas une liaison) du fichier avec le commutateur -c. Il est sans gravité !
0
Rejoignez-nous