IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [转]解决boost::asio的WinSock.h has already been included

    lincyang发表于 2011-03-10 10:50:00
    love 0

     

    本文转自:http://blog.csdn.net/gzlyb/archive/2010/09/08/5870326.aspx

     

    用如下第一条搞定:

     

     

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

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

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

    那哪里定义了_WINSOCKAPI_呢?

    后来在网上查了下,原来是我包含了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

     



沪ICP备19023445号-2号
友情链接