Link avec GCC [Résolu]

mrjulien 39 Messages postés vendredi 15 octobre 2004Date d'inscription 28 novembre 2007 Dernière intervention - 28 janv. 2005 à 12:09 - Dernière réponse : mrjulien 39 Messages postés vendredi 15 octobre 2004Date d'inscription 28 novembre 2007 Dernière intervention
- 28 janv. 2005 à 14:09
Bonjours a tous.
Je compile avec gcc sous windows (grâce a mingw). Je ne souhaite pas vous ennuyer en créant un topic redondant, mais je n'arrive pas à régler un pbl sur un sujet plusieurs fois abordé ici. Je compile un exemple d'utilisation des sockets, ici la création d'un serveur dont voici le code :

#include <conio.h>
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "libws2_32.a")



main()
{



char buffer[255];


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


SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;


sock = socket(AF_INET, SOCK_STREAM, 0);


sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(4444);


bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);


while(1)
{
int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
memset(buffer,0,255);
wsprintf(buffer,"Bienvenu sur mon serveur ;)");
send(csock,buffer,255,0);
}
}





}

Le fichier libws2_32.a est naturellement présent dans le répertoire lib. Pour compiler je lance la commande: gcc -lws2_32 source.c
L'option -l permet de linker une librairie d'aprés le tutorial gcc que j'ai lu. Malgés celà le link ne fonctionne pas : undefined reference to [mailto:`WSAStartup@8' `WSAStartup@8'] etc.....

Merci de votre aide.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_Nebula 790 Messages postés samedi 8 juin 2002Date d'inscription 7 juin 2007 Dernière intervention - 28 janv. 2005 à 12:49
3
Merci
Au lieu de cette horreur : #pragma comment(lib, "libws2_32.a")

Met donc ceci dans ta ligne de commande : -lws2_32



Et GCC linkera l'exe en utilisant libws2_32.a, un exemple :

gcc main.c -lws2_32 -o toto.exe

Merci cs_Nebula 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cs_Nebula
bayeto 224 Messages postés mardi 12 août 2003Date d'inscription 18 octobre 2010 Dernière intervention - 28 janv. 2005 à 12:17
0
Merci
Petite question: ce prama est-il reconnu par gcc?
#pragma comment(lib, "libws2_32.a")
Je crois que beaucoup de pramas sont specifiques aux compilateurs.
Commenter la réponse de bayeto
mrjulien 39 Messages postés vendredi 15 octobre 2004Date d'inscription 28 novembre 2007 Dernière intervention - 28 janv. 2005 à 12:39
0
Merci
http://www.guru-meditation.net/main.php3?root=110
>"Vous pouvez ensuite effacer si vous le souhaitez les protos et pragmas http://www.guru-meditation.net/main.php3?SEARCHFUNC=(répertoires proto, pragma et pragmas) car GCC ne les utilise pas"

Apparement il semblerait que cela pose problème. Comment passer outre ?
Commenter la réponse de mrjulien
mrjulien 39 Messages postés vendredi 15 octobre 2004Date d'inscription 28 novembre 2007 Dernière intervention - 28 janv. 2005 à 14:09
0
Merci
Merci bien, problème résolu. Je pense que ce sujet aidera d'autre personne.
Merci encore de votre participation :]
Commenter la réponse de mrjulien

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.