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 :

Erreur de compilation sous cygwin


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Par défaut Erreur de compilation sous cygwin
    Bonjour,

    J'ai téléchargé boost 1.47.0 pour utiliser la librairie asio (gestion des ports série) dans mon programme sous Linux. J'ai installé boost en faisant :
    ./bootstrap.sh
    ./bjam cflags=-m32 cxxflags=-m32 address_model=32 threading=multi architecture=x86 instruction-set=i686 (j'ai absolument besoin du 32bits et non du 64bits)
    ./bjam cflags=-m32 cxxflags=-m32 address_model=32 threading=multi architecture=x86 instruction-set=i686 install
    Tout compile nickel sous Linux.

    J'ai suivi le même schéma sous cygwin mais j'ai des erreurs de compilation :
    Les deux erreurs qui reviennent de nombreuses fois sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /usr/local/include/boost/asio/ip/detail/socket_option.hpp:404:43: erreur: 'struct in_addr' has no member named 'S_un'
    /usr/local/include/boost/asio/ip/detail/endpoint.ipp:60:24: erreur: 'struct in6_addr' has no member named '_S6_un'
    Dans le cas de _S6_un, un grep me dit qu'il est défini dans old_win_sdk_compat.hpp si __CYGWIN__, BOOST_ASIO_HAS_OLD_WIN_SDK sont définis et que s6_addr n'est pas défini.

    En définissant __CYGWIN__, BOOST_ASIO_HAS_OLD_WIN_SDK , j'ai toujours les mêmes erreurs. J'ai cherché où était défini s6_addr mais je n'ai pas trouvé...Je suis un peu à court d'idées...

    Merci pour votre aide.
    François

    [EDIT] J'ai essayé aussi l'option de compilation __USE_W32_SOCKETS mais cela ne change rien.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Est-ce que tu as essayé de partir du package boost proposé par cygwin, plutôt que de prendre le package boost de base ? Il me semble que cygwin a besoin de faire quelques petites modifications ici et là pour que ça fonctionne correctement.

    De plus, le dernier package boost pour cygwin est la 1.46.quelquechose, ce qui te sera peut-être suffisant au cas où tu serais vraiment bloqué avec la 1.47.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Par défaut
    Je ne savais pas qu'un tel package existait. Je vais essayer, je n'ai effectivement pas besoin de la toute derniere release de boost. Merci pour l'info

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Par défaut
    Bon c'est un peu mieux mais j'ai maintenant les erreurs suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /usr/include/boost/asio/detail/impl/socket_ops.ipp:1464:22 erreur: 'fd_set' has not been declared
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /usr/include/boost/asio/detail/impl/socket_ops.ipp:1497:30 erreur: '::select' has not been declared

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Il doit manquer un #include <sys/select.h> #include <sys/types.h> (si je me rappelle bien) quelque part. Pas sûr que ça soit dans boost (peut-être que tu peux ajouter cette ligne avant ton #include <....asio...>).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Par défaut
    Bon mon programme est en cours de compilation !

    Effectivement je me suis tourné vers sys/types.h. Pour que ça compile, j'ai du commenter la ligne 211 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #if !(defined(_POSX_SOURCE) || defined(_WINSOCK_H) || defined(__USE_W32_SOCKETS))
    avec le #endif qui correspond. Cela "règle" le problème de fd_set.

    Dans sys/select.h, ligne 15 a commenter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #if !defined(_POSX_SOURCE) && !defined__INSIDE_CYGWIN_NET__) && !defined(__USE_W32_SOCKETS)
    avec le #endif qui correspond. Cela "règle" le problème de select.

    Dans sys/unistd.h
    J'ai commenté la ligne 231 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #if!(defined(_WINSOCK_H) || defined(__USE_W32_SOCKETS))
    avec le #endif qui correspond. Cela "règle" le problème de gethostname.

    Et enfin dans boost/thread/future.hpp à la ligne 407, remplacer le index(index_) par index=index_ dans le corps du constructeur (ligne 408).

    Avec tout ça la compile continue, reste à voir l'exécution, c'est pour cela que j'est mis "règle" entre guillemets...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/07/2008, 09h18
  2. Erreur de compilation sous TeXnicCenter
    Par gregosss dans le forum Erreurs - Avertissements
    Réponses: 8
    Dernier message: 09/11/2007, 21h46
  3. Réponses: 4
    Dernier message: 10/07/2006, 19h23
  4. erreur de compilation sous linux
    Par petdelascar dans le forum C
    Réponses: 11
    Dernier message: 21/12/2005, 20h10
  5. erreur de compilation sous DEV-C++
    Par felicity dans le forum C
    Réponses: 5
    Dernier message: 19/12/2005, 19h59

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