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底下需要管理员权限),该编译错误即可消失,各功能也能正常使用,先就这样用一下了。