IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

[débutant] Sockets: Problème de compilation


Sujet :

Réseau C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [débutant] Sockets: Problème de compilation
    Bonjour,

    J'ai lu le tutoriel de The Warlus sur les sockets, mais mon IDE (Code::Blocks) ne veut pas compiler, même quand je prends des exemples de l'article.
    Il fait comme si je n'avais pas inclus winsock2. Pourtant, il reconnait le type "WSAData".

    Par exemple:
    Je mets ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock2.h>
    #pragma comment(lib, "ws2_32.lib")
     
     
    int main(void)
    {
    WSADATA WSAdata;
    WSAStartup(MAKEWORD(2,0), &WSAdata);
    SOCKET sock;
    SOCKADDR_IN sin;
    char *buffer;
    sin.sin_addr.s_addr = inet_addr("ip");
    sin.sin_family = AF_INET;
    sin.sin_port = htons(6667);
    sock=socket(AF_INET, SOCK_STREAM, 0);
    connect(sock, (SOCKADDR *)&sin, sizeof(sin));
    recv(sock, buffer, sizeof(buffer), 0);
    closesocket(sock);
    WSACleanup();
    system("PAUSE");
    return 0;
    }
    Et il me répond ça:
    Switching to target: default
    Compiling: main.c
    Linking console executable: C:\testcodeblocks.exe
    .objs\main.o:main.c: (.text+0x45): undefined reference to `WSAStartup@8'
    .objs\main.o:main.c: (.text+0x54): undefined reference to `inet_addr@4'
    .objs\main.o:main.c: (.text+0x72): undefined reference to `htons@4'
    .objs\main.o:main.c: (.text+0x98): undefined reference to `socket@12'
    .objs\main.o:main.c: (.text+0xc1): undefined reference to `connect@12'
    .objs\main.o:main.c: (.text+0xec): undefined reference to `recv@16'
    .objs\main.o:main.c: (.text+0xfd): undefined reference to `closesocket@4'
    .objs\main.o:main.c: (.text+0x105): undefined reference to `WSACleanup@0'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    ça doit être tout bête, je sais...

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    parfois, l'instruction préproc pragma ne suffit pas au compilateur...

    normalement, dans les options du projet dans ton IDE, tu dois avoir un endroit où indiquer les libraries à linker, il faut que tu y spécifies le .lib

    [l'option à spécifier au linker est -lws2_32]

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Avec C::B clic droit sur le projet "Build Option" puis Linker et l'a tu ajoutes la librairie.

  4. #4
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Exact, pragma_comment n'est valable que pour Visual C++

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Débutant en JAVA, problème de compilation
    Par dylanms dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 13/12/2007, 22h32
  2. problème débutant socket
    Par Beruboy dans le forum C++
    Réponses: 2
    Dernier message: 22/09/2006, 14h25
  3. [débutant] problème de compilation
    Par shinkyo dans le forum GLUT
    Réponses: 4
    Dernier message: 21/05/2006, 15h18
  4. [débutant] problème de compilation
    Par LaseLiep dans le forum C
    Réponses: 12
    Dernier message: 16/12/2005, 20h40
  5. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo