boost::asio在VS2008下的编译错误

boost::asio在VS2008下的编译错误。

升级VS到VS2008后,编译boost::asio出错,

old_win_sdk_compat.hpp:58行报错,该行代码是:

struct in6_addr_emulation

{

    u_char s6_addr[16];

};

 

究其原因,是因为c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\in6addr.h:36中有这样一句

#define s6_addr _S6_un._S6_u8

这样就导致被重定义。

由于现在不用ipv6的相关部分,并且VS2008和也在不断升级中,估计asio的下一版会注意到此问题的。暂且注释该行(因为是在C盘,vista底下需要管理员权限),该编译错误即可消失,各功能也能正常使用,先就这样用一下了。

原文地址:https://www.cnblogs.com/TianFang/p/909059.html