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

Boost C++ Discussion :

[compilation] boost::asio winsock.h déjà inclu ?


Sujet :

Boost C++

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Par défaut [compilation] boost::asio winsock.h déjà inclu ?
    Bonjour à tous

    Je rencontre un problème de compilation sous VC9.0 (Windows XP/Visual Studio 2008) avec boost::asio. Le compilateur me "crache" l'erreur suivante:

    c:\program files\boost\boost_1_37\boost\asio\detail\socket_types.hpp(27) : fatal error C1189: #error : WinSock.h has already been included

    alors que Winsock n'est inclu nulle part dans mes classes. J'ai retiré la lib winsock des options de link (mais bon vu que je n'arrive pas jusque là...), même résultat. Le seul header qui reste hors boos/asio c'est windows.h et je doute que le problème vienne de là (mais je n'ai pas essayé de la retirer pour voir).

    Est-ce que quelqu'un a déjà recontré (et résolu ) ce problème ?

    Tant que j'y pense, j'ai une autre question. Dans mon code j'ai considéré que l'objet WSADATA nécessaire sous Windows était traité "en interne" par boost::asio, essentiellement parcque je n'ai pas trouvé de référence le concernant dans les tutos boost ni ailleurs. Est-ce bien le cas ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Deneteth Voir le message
    Tant que j'y pense, j'ai une autre question. Dans mon code j'ai considéré que l'objet WSADATA nécessaire sous Windows était traité "en interne" par boost::asio, essentiellement parcque je n'ai pas trouvé de référence le concernant dans les tutos boost ni ailleurs. Est-ce bien le cas ?

    Merci d'avance
    Oui bien sûr. C'est un détail d'implémentation, ou une petite différence entre les sockets sous Linux et les sockets sous Windows. On s'en sort assez facilement avec des directives de préprocesseur.

    Pour l'autre problème, je vois pas trop. Un bout de code simple qui montre le problème ?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Assure-toi que tu n'inclues pas windows.h avant asio, même indirectement (genre Boost.Thread et Boost.DateTime l'incluaient et l'incluent peut-être toujours dans la 1.38 je n'ai pas vérifié), donc en gros inclue asio en premier.
    Sinon tu peux aussi ajouter un #define WIN32_LEAN_AND_MEAN avant tous les includes.

    MAT.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Par défaut
    Bingo! En fait ma classe hérite d'une classe principale qui elle inclue windows.h.

    Je testerai aussi avec ton #define.

    Merci !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/07/2012, 12h03
  2. Impossible de compiler avec BOOST ASIO
    Par Sentenza31 dans le forum Débuter
    Réponses: 0
    Dernier message: 27/11/2010, 18h52
  3. Boost::Asio et code::blocks
    Par TocTocKiéLà? dans le forum Boost
    Réponses: 10
    Dernier message: 10/08/2007, 23h20
  4. Boost::asio et openssl
    Par Floréal dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 18/07/2007, 16h17
  5. Boost::asio : multi threading ou pas?
    Par Alp dans le forum Boost
    Réponses: 9
    Dernier message: 02/09/2006, 22h01

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