【发布时间】:2010-10-31 02:19:09
【问题描述】:
在尝试编译包含 <winsock2.h> 的 VS2008 c++ 项目时,出现大量 (105) 重定义和语法错误。运行 Windows 7 64 位。
我用谷歌搜索过,答案似乎很统一,但似乎对我不起作用。
尝试将#include <winsock2.h> 放在#include <windows.h> 之前。也试过不包括<windows.h>(因为winsock2如果缺少它会自动包括它)。
之前尝试过#define WIN32_LEAN_AND_MEAN 和/或#define _WINSOCKAPI_。
在链接器 -> 其他依赖项中,我引用了 ws2_32.lib。
也试过#pragma comment(lib, "ws2_32.lib")。
我重建整个解决方案以防万一。
常见错误(似乎很多人都有):
Error 5 error C2011: 'sockaddr' : 'struct' type redefinition c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 206 RallyAction
Error 6 error C2143: syntax error : missing '}' before 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
Error 7 error C2143: syntax error : missing ';' before 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
Error 8 error C2059: syntax error : 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
...等等等等。
任何建议将不胜感激。
【问题讨论】:
标签: c++ visual-studio-2008 visual-c++ sockets