boost\asio fatal error C1189: #error : WinSock.h has already been included错误处理

开发环境1:vs2010+\boost_1_50_0+mysql+sqlite ,
开发环境2:使用标准 Windows 库+使用多字节字符集

错误现象: 编译报如下错误
     e:\boost_1_50_0\boost\asio\detail\socket_types.hpp(22): fatal error C1189: #error :  WinSock.h has already been included

错误原因:
        程序中增加l包含有Windows.h头文件,而Windows.h头文件又包含了WinSock.h这个东西
解决过程:
        1,  查找哪里包含了Windows.h
            结果:#include "MySQL.h" 和SQlite.h"中包含了windows.h头文件 。不方便去除,放弃

        2, 在 "stdafx.h" 设置  "#define WIN32_LEAN_AND_MEAN" 。可以在编译时,不编译mfc库相关。
             效果: "MySQ.h"中报了一堆错误。放弃吧。

        3,没办法了,调整程序头文件引用顺序。
               将"MySQL.h" 和SQlite.h"放置在#include <boost/asio.hpp> 后面。
             效果:编译通过。

心得:没有办法的时候,调整程序头文件引用顺序也是很管用的,你也试试吧!
   
          



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值