Frage

Es scheint ein Konflikt mit den Fenstern Header zwischen dem mysql c-api zu sein und boost :: asio.

Wenn ich schließen mysql erste erhalte ich:

  

boost / Asio / detail / socket_types.hpp (27): schwerwiegender Fehler C1189: #error: WINSOCK.H bereits aufgenommen worden

#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
# if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
#  error WinSock.h has already been included
# endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)

Wenn ich boost :: asio sind erste erhalte ich:

  

include \ config-win.h (24): Warnung C4005: '_WIN32_WINNT': Makro Neudefinition

/* 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

Gibt es eine Möglichkeit, um dieses, und warum versucht mysql die Windows-Version zu zwingen, und steigern Sie versuchen zu erzwingen, dass es sind ohnehin seine Selbst Winsock?

War es hilfreich?

Lösung

Das Makro Neudefinition ist nur eine Warnung. Der Code sollte noch kompilieren und verknüpfen. Ich denke, Ihr Code wird auch ohne Probleme arbeiten.

Andere Tipps

Versuchen

#include "winsock2.h"

, bevor einschließlich mysql und boost :: asio

Wenn Sie nicht einen Weg, um dieses Problem zu umgehen finden können, können Sie versuchen, die MySQL API Einwickeln hinter einem

scroll top