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 :

Problème avec un code


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut Problème avec un code
    Bonjour, je développe un petit programme permettant de "bavarder" (en mode console) entre deux pc via le protocole tcp/ip (pour l'instant j'en suis au tout début). Je n'arrive pas à compiler un simple code (que j'ai écris) en m'inspirant d'un code trouvé sur le net (en utilisant le code que l'on trouve sur le site d'Emmanuel : http://emmanuel-delahaye.developpez.com/reseaux.htm , c'est pareil).

    Voilà le problème :

    [Build Error] [MySock.exe] Error 1

    Ca à l'aire tout bête mais non, le code à l'air pourtant correct :

    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
    25
    26
     
    /*
      Name: MySock
      Copyright: Gpl v2
      Author: Samy Hocine
      Date: 07/10/07 18:14
      Description: A small app to comunicate between two persons
    */
    #include <stdio.h>
    #include <stdlib.h>
    #if defined (WIN32)
    #include <winsock2.h>
    #endif
    int main(void)
    {
     #if defined (WIN32)
            WSADATA WSAData;
            WSAStartup(MAKEWORD(2,0), &WSAData);
        #endif
     /* code */
     #if defined (WIN32)
            WSACleanup();
      #endif
     
      return 0;
    }
    Voilà ce que j'ai en paramètre pour mon projet :

    Et en paramètre "général" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    -Wall -Wextra -O2 -Wwrite-strings -Wstrict-prototypes
    Observez que si je met -wsock32 à la place wsock32 j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     [Linker error] undefined reference to `WSAStartup@8' 
      [Linker error] undefined reference to `WSACleanup@0' 
    [Build Error]  [MySock.exe] Error 1
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Bonjour, je développe un petit programme permettant de "bavarder" (en mode console) entre deux pc via le protocole tcp/ip (pour l'instant j'en suis au tout début). Je n'arrive pas à compiler un simple code (que j'ai écris) en m'inspirant d'un code trouvé sur le net (en utilisant le code que l'on trouve sur le site d'Emmanuel : http://emmanuel-delahaye.developpez.com/reseaux.htm , c'est pareil).

    Voilà le problème :

    [Build Error] [MySock.exe] Error 1
    Insuffisant. Fait un Ctrl-F11 [OUI] et poste un copié collé de la fenêtre de compilation (build log). Par exemple (avec le code que tu as posté) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 2 seconds)
    0 errors, 0 warnings
    Ca à l'aire tout bête mais non, le code à l'air pourtant correct :
    Voilà ce que j'ai en paramètre pour mon projet :
    C'est faux. La bibliothèque s'appelle libws2_32.a. Il faut donc mettre dans la liste des bibliothèques, ws2_32 .

    C'est pourtant indiqué sur mon site...

    Environnement de développement

    Le code est écrit et validé sous Windows avec Dev-C++/Code::Blocks et la blibiothèque -lws2_32. Il compile sous Linux, mais n'est pas validé pour le moment. (Si quelqu'un veut le faire, il est le bienvenu)

  3. #3
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Insuffisant. Fait un Ctrl-F11 [OUI] et poste un copié collé de la fenêtre de compilation (build log). Par exemple (avec le code que tu as posté) :
    Le ctrl+F11 ne donne rien. Le log :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Compilateur: Default GCC compiler
    Building Makefile: "C:\Users\SamSoft\Documents\Programmation\projets\C\Sockets\Makefile.win"
    Finding dependencies for file: C:\Users\SamSoft\Documents\Programmation\projets\C\Sockets\main.c
    Exécution de  make...
    make.exe -f "C:\Users\SamSoft\Documents\Programmation\projets\C\Sockets\Makefile.win" all
    gcc.exe main.o  -o "MySock.exe" -L"C:/Program Files/Dev-Cpp/Lib" ws2_32  
    gcc.exe: ws2_32: No such file or directory
    make.exe: *** [MySock.exe] Error 1
    Exécution terminée
    C'est faux. La bibliothèque s'appelle libws2_32.a. Il faut donc mettre dans la liste des bibliothèques, ws2_32 .

    C'est pourtant indiqué sur mon site...
    Dans lib de devcpp j'ai :

    libwsock32.a et libws2_32.a


    Idem avec sock32

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Le ctrl+F11 ne donne rien.
    Bien sur que si ça donne quelque chose. Ce log (journal), par exemple :
    Le log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Compilateur: Default GCC compiler
    Building Makefile: "C:\Users\SamSoft\Documents\Programmation\projets\C\Sockets\Makefile.win"
    Finding dependencies for file: C:\Users\SamSoft\Documents\Programmation\projets\C\Sockets\main.c
    Exécution de  make...
    make.exe -f "C:\Users\SamSoft\Documents\Programmation\projets\C\Sockets\Makefile.win" all
    gcc.exe main.o  -o "MySock.exe" -L"C:/Program Files/Dev-Cpp/Lib" ws2_32  
    gcc.exe: ws2_32: No such file or directory
    make.exe: *** [MySock.exe] Error 1
    Exécution terminée
    C'est pourtant clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc.exe: ws2_32: No such file or directory
    Visiblement, tu n'as pas mis ce fichier au bon endroit dans la configuration de ton projet. Le plus simple est (Code::Blocks) :

    Settings > Compiler > Linker > Link libraries (Add)

    comme ça, c'est fait une bonne fois pour toutes...

    Sinon, on peut le faire par projet...

    Dans lib de devcpp j'ai :

    libwsock32.a et libws2_32.a
    • libwsock32.a est la bibliothèque de winsock
    • libws2_32.a est la bibliothèque de winsock2

    winsock (Windows 3.x etc.) est obsolète depuis Windows 95 (ça fait quand même 12 ans...)

    On utilise winsock2 qui est très proche des sockets POSIX.1 (BSD).
    Idem avec sock32
    Ahem, choisit mieux tes sources... Est-ce que sur mon site, je parle de Winsock ? Non. Winsock2 uniquement. Merci de ne pas déterrer les cadavres, ça pue...

    Au fait, on ne va pas te répéter tous les jours que dev-C++ est obsolète. Je conseille (euphémisme inside) Code::Blocks...

    Et aussi forme toi avec les cours de programmation C et la FAQ C.

  5. #5
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Merci Emmanuel pour ses informations

    Je vais donc jongler entre ton site et http://vidalcharles.free.fr/lf/socket.html

    Il suffisait d'ajouter le fichier et nom d'ajouter le mot ws2_32

    Je suis en train de télécharger code::blocks (j'avais changé de pc )

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Je vais donc jongler entre ton site et http://vidalcharles.free.fr/lf/socket.html
    Voilà, tu as compris.

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

Discussions similaires

  1. probléme avec mon code JAVA et MYSQL
    Par ulysse031 dans le forum JDBC
    Réponses: 5
    Dernier message: 10/05/2007, 00h46
  2. problème avec un code
    Par abiraa dans le forum C++
    Réponses: 1
    Dernier message: 10/04/2007, 15h39
  3. Petit problème avec un code : besoin de votre aide :)
    Par loicdu4000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/09/2006, 18h02
  4. [MySQL] OU est le probléme avec ce code ??
    Par adlich dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/04/2006, 17h47

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