error C2011: 'fd_set' : 'struct' type redefinition的错误处理
2014-12-21 19:31
429 查看
error C2011: 'fd_set' : 'struct' type redefinition的错误处理
前一段时间写一个关于网络的小程序遇到的一个问题:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(460) : see previous definition of 'AF_IPX'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(127) : warning C4005: 'AF_MAX' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(479) : see previous definition of 'AF_MAX'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(163) : warning C4005: 'SO_DONTLINGER' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(402) : see previous definition of 'SO_DONTLINGER'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(206) : error C2011: 'sockaddr' : 'struct' type redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(485) : see declaration of 'sockaddr'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2143: syntax error : missing '}' before 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2143: syntax error : missing ';' before 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2059: syntax error : 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C2143: syntax error : missing ';' before '}'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(518) : warning C4005: 'IN_CLASSA' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(287) : see previous definition of 'IN_CLASSA'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(524) : warning C4005: 'IN_CLASSB' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(293) : see previous definition of 'IN_CLASSB'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(530) : warning C4005: 'IN_CLASSC' : macro redefinition
........................................................................................
解决方法:
winsock.h已经包含在windows.h就可以了,引用了winsock2.h文件了就会造成重复定义的错误,不过可以通过在#include <windows.h> 前面定义一个宏,禁止windows.h包含winsock.h 。
例子:#define _WINSOCKAPI_ // 禁止windows.h包含winsock.h
前一段时间写一个关于网络的小程序遇到的一个问题:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(460) : see previous definition of 'AF_IPX'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(127) : warning C4005: 'AF_MAX' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(479) : see previous definition of 'AF_MAX'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(163) : warning C4005: 'SO_DONTLINGER' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(402) : see previous definition of 'SO_DONTLINGER'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(206) : error C2011: 'sockaddr' : 'struct' type redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(485) : see declaration of 'sockaddr'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2143: syntax error : missing '}' before 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2143: syntax error : missing ';' before 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2059: syntax error : 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C2143: syntax error : missing ';' before '}'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(518) : warning C4005: 'IN_CLASSA' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(287) : see previous definition of 'IN_CLASSA'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(524) : warning C4005: 'IN_CLASSB' : macro redefinition
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(293) : see previous definition of 'IN_CLASSB'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(530) : warning C4005: 'IN_CLASSC' : macro redefinition
........................................................................................
解决方法:
winsock.h已经包含在windows.h就可以了,引用了winsock2.h文件了就会造成重复定义的错误,不过可以通过在#include <windows.h> 前面定义一个宏,禁止windows.h包含winsock.h 。
例子:#define _WINSOCKAPI_ // 禁止windows.h包含winsock.h
相关文章推荐
- error C2011: 'fd_set' : 'struct' type redefinition 。。。
- error C2011: 'fd_set' : 'struct' type redefinition 的原因(转)
- vc6中 error C2011: 'fd_set' : 'struct' type redefiniti...
- error C2011: 'fd_set' : 'struct' type redefinition问题
- WinSock2.h(109) : error C2011: 'fd_set' : 'struct' type redefinition
- error C2011: “fd_set”: “struct”类型重定义
- VS2010包含windows.h时winsock2.h出现"fd_set":struct类型重定义错误处理
- Hadoop Failed to set permissions of path 错误处理
- 'fd_set' redefinition winsock2.h,相关头文件条件编译处理
- set_error_handler自定义错误处理
- set autotrace 时SP2-0618和_SP2-0611错误处理
- VS2010包含windows.h时winsock2.h出现"fd_set":struct类型重定义
- 解决error C2011: 'fd_set' : 'struct' type redefinition的方法
- VS2010包含windows.h时winsock2.h出现"fd_set":struct类型重定义
- error C2011: “Picture”:“struct”类型重定义
- VS2010包含windows.h时winsock2.h出现"fd_set":struct类型重定义
- set_error_handler自定义错误处理
- PHP 使用回调函数(set_error_handler)处理异常和错误
- select 和 struct fd_set
- delphi 中关于 The DecisionCube capacity is low. Please deactivate dimensions or change the data set 错误的处理