Prob socket en C

AsKy Messages postés 1001 Date d'inscription   Statut Contributeur Dernière intervention   -  
 HeavyIsNotDead -
bonjour a tous

j'essaie depuis un bout de tps de faire une application socket en C, là j'ai tapé un truc qui me semble pas mal, mais quand je veux le compiler , visual C++ me met le message suivant:

--------------------Configuration: socket - Win32 Debug--------------------
Linking...
socket1.obj : error LNK2001: unresolved external symbol _closesocket@4
socket1.obj : error LNK2001: unresolved external symbol _connect@12
socket1.obj : error LNK2001: unresolved external symbol _htons@4
socket1.obj : error LNK2001: unresolved external symbol _socket@12
socket1.obj : error LNK2001: unresolved external symbol _gethostbyname@4
Debug/socket.exe : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.

je comprends rien et ds la msdn c'est aussi en anglais et c'est pas plus clair...
si qqun pouvait m'aider...
merci beaucoup!

AsKy
# Le travail est sacré, n'y touches pas!!! #

4 réponses

pizzabiere Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
sans le code ça va être dur, néanmoins, "unresolved external symbol" semble indiquer qu'une bibliothèque n'a pas été déclarée correctement (problème au niveau des include).

@ +
Pizzabiere
0
AsKy Messages postés 1001 Date d'inscription   Statut Contributeur Dernière intervention   65
 
Pourtant gethostbyname, htons &co sont ds la bibli winsock.h que j'ai correctement déclaré au début.
si tu veux le code n'est pas tres long je peux te le mailer.
merci d'avoir répondu!

Lord AsKy
# Le travail est sacré, n'y touches pas!!! #
0
Krizniak Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   4
 
Il ne suffit pas d'inclure le .h pour pouvoir utiliser une bibliothèque donnée.

Le .h, bien souvent, ne contient que les déclarations (Il existe une fonction, dont le nom est trucmuche, qui attend les paramètres bidule de type truc, machin de type chose et brol de type indéterminé, et qui retourne une valeur de type droledemachintrucaubiduledechose)...
Maintenant, il faut que ton système puisse savoir quoi faire lorsqu'on appele cette fonction, et ceci est bien souvent mémorisé dans un fichier .lib fourni en même temps que le .h.


Pour compiler, il faudra que tu ajoute (à la main) le nom du .lib utilisé (voir le MSDN, dans une des fonctions incriminées, tu verras un .lib dans le bas de la description de la fonction) dans la zone de texte adéquate des options de ton projet...

Ca devrait alors pouvoir compiler sans erreur, comme pizzabiere le disait : c'est un message typique de non-complétude dans les définitions de l'édition des liens...

A+

Krizniak
Mon crédo : "Aide-toi, le ciel t'aidera..."
0
HeavyIsNotDead
 
salut,
Pour ton problème, il faut utiliser la lib ws2_32.lib
Dans le menu Project, Settings onglet link, Section [Object/Library module],
ajout la lib et recompile.


A+
0