Link avec GCC [Résolu]

Messages postés
39
Date d'inscription
vendredi 15 octobre 2004
Dernière intervention
28 novembre 2007
- 28 janv. 2005 à 12:09 - Dernière réponse :
Messages postés
39
Date d'inscription
vendredi 15 octobre 2004
Dernière intervention
28 novembre 2007
- 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
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Dernière intervention
7 juin 2007
- 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é 90 internautes ce mois-ci

Commenter la réponse de cs_Nebula
Messages postés
224
Date d'inscription
mardi 12 août 2003
Dernière intervention
18 octobre 2010
- 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
Messages postés
39
Date d'inscription
vendredi 15 octobre 2004
Dernière intervention
28 novembre 2007
- 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
Messages postés
39
Date d'inscription
vendredi 15 octobre 2004
Dernière intervention
28 novembre 2007
- 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.