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

C++ Discussion :

Problème <winsock2.h> C++


Sujet :

C++

  1. #1
    Membre confirmé Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par défaut Problème <winsock2.h> C++
    Bonjour à tous je suis sous Vista et je développes dans ce cas précis avec Code::Blocks 8.2.
    Voici un code très simple C++ :
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    #include <winsock2.h>
     
    using namespace std;
     
    int main() {
        SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
        SOCKADDR_IN sin;
        sin.sin_addr.s_addr = htonl(INADDR_ANY);
        sin.sin_family = AF_INET;
        sin.sin_port = htons(80);
        cout << "ok." << endl;
        return 0;
    }

    Qui me donne les erreurs :
    C:\Users\Valter\Desktop\session.o:session.cpp.text+0x130)||undefined reference to `_htonl@4'|
    C:\Users\Valter\Desktop\session.o:session.cpp.text+0x148)||undefined reference to `_htons@4'|
    C:\Users\Valter\Desktop\session.o:session.cpp.text+0x16b)||undefined reference to `_socket@12'|
    ||=== Build finished: 3 errors, 0 warnings ===|

    Pouvez vous me dire d'où proviennent ces erreurs s'il vous plait ?
    Merci d'avance.

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Je ne suis pas sûr, mais ça ressemble à des erreurs de link. As-tu linké la lib? (quelque chose comme wsock32.lib)

  3. #3
    screetch
    Invité(e)
    Par défaut
    ws2_32.lib

  4. #4
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    et je développes dans ce cas précis avec Code::Blocks 8.2.
    Ou bien libws2_32.a

  5. #5
    Membre confirmé Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par défaut
    J'ai essayé :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #pragma comment(lib, "ws2_32.lib")
    #pragma comment(lib, "wsock32.lib")
    #pragma comment(lib, "libws2_32.a")

    Et aucun ne marche malheureusement.

    Merci.

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Avez vous tenté d'ajouter "-lws2_32" aux options de link ?

    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #pragma comment(lib, "toto")
    est une syntaxe réservée à Visual studio.
    Pour gcc, on utilise -ltoto pour lier au fichier libtoto.a
    Dernière modification par Invité(e) ; 05/09/2008 à 17h49.

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    effectivement, pragma ne fonctionne qu'avec visual.
    Pour C::B il faut bidouiller dans les options du projet (ou modifier le makefile si tu utilises un makefile).

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par r0d Voir le message
    effectivement, pragma ne fonctionne qu'avec visual
    Je dirais plutôt que les directives #pragma sont spécifiques au compilateur. Lorsque la directive n'est pas connue du compilateur, il est libre de l'ignorer.

    Il y a des #pragma spécifiques à Visual Studio et d'autre spécifiques à Turbo C++ par exemple.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. Problème librairie winsock2.h
    Par Johnny29 dans le forum Réseau
    Réponses: 0
    Dernier message: 31/12/2012, 10h53
  2. Problème de link avec winsock2.h
    Par sebh dans le forum Windows
    Réponses: 5
    Dernier message: 25/04/2008, 11h01
  3. <winsock2.h> et problème de compréhension
    Par Johannliebert dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 27/11/2006, 11h43
  4. Jeu SDL utilisant Winsock2, problème réseau
    Par TONIAPEL dans le forum C
    Réponses: 2
    Dernier message: 22/08/2006, 21h15
  5. [C][Winsock2 et Ws2tcpip] Problème !
    Par Franck.H dans le forum Windows
    Réponses: 12
    Dernier message: 22/10/2005, 18h52

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