fatal error C1189: #error : WinSock.h has already been included

  • 2015-01-22
  • 900℃
Share:

问题描述:

在使用boost::asio库时,编译碰到这个错误提示:

fatal error C1189: #error :  WinSock.h has already been included

查了下抛出这个错误的boost代码,原来是定义了_WINSOCKAPI_,但没有定义_WINSOCK2API_

原来是包含了Windows.h头文件,而Windows.h头文件又包含了WinSock.h


解决方法:

有三种可解决此错误

1、在包含Windows.h前定义宏WIN32_LEAN_AND_MEAN,就OK了(WIN32_LEAN_AND_MEAN表示不包含一些极少使用和偏门的资料)

2、在包含Windows.h前包含winsock2.h

3、在包含Windows.h前包含asio.hpp

最新
业务QQ