Il semble y avoir un conflit avec les en-têtes de fenêtres entre mysql c-api et boost :: asio.Conflit d'en-tête mysql et boost asio C++
Si je mysql d'abord j'inclus obtenir:
boost/ASIO/détail/socket_types.hpp (27): erreur fatale C1189: #error: Winsock.h a déjà été inclus
#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
# if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
# error WinSock.h has already been included
# endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
Si je boost :: asio inclus premier je reçois:
include \ config-win.h (24): avertissement C4005: '_WIN32_WINNT': Redefin macro ition
/* Defines for Win32 to make it compatible for MySQL */
#ifdef __WIN2000__
/* We have to do this define before including windows.h to get the AWE API
functions */
#define _WIN32_WINNT 0x0500
#else
/* Get NT 4.0 functions */
#define _WIN32_WINNT 0x0400
#endif
Y at-il une façon de contourner cela, et pourquoi MySQL tente de forcer la version Windows et stimuler essayer d'appliquer d'inclure WINSOCK son auto de toute façon?
boost inclut bien, mais mysql donne cet avertissement suivi d'un tas d'erreurs dans ws2tcpip.h et mswsock.h –