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 :
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.
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'
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.
Partager