gpt4 book ai didi

c++ - 错误 C2011 : 'sockaddr' : 'struct' type redefinition. 请参阅 'sockaddr' 的声明

转载 作者:可可西里 更新时间:2023-11-01 11:06:53 25 4
gpt4 key购买 nike

<分区>

我使用 Visual Studio 2012 并尝试获取静态库 UDT开始工作。不幸的是,我无法编译将 UDT 库链接到自身的项目,我在 Windows SDK header 中收到 159 个关于类型或宏重新定义的奇怪错误。

c:\program files\windows kits\8.0\include\shared\ws2def.h(96): warning C4005: 'AF_IPX' : macro redefinition
2> c:\program files\windows kits\8.0\include\um\winsock.h(452) : 参见之前的“AF_IPX”定义
2>c:\program files\windows kits\8.0\include\shared\ws2def.h(136): warning C4005: 'AF_MAX' : 宏重定义
2> c:\program files\windows kits\8.0\include\um\winsock.h(471) : 参见之前的“AF_MAX”定义
2>c:\program files\windows kits\8.0\include\shared\ws2def.h(173): warning C4005: 'SO_DONTLINGER' : 宏重定义
2> c:\program files\windows kits\8.0\include\um\winsock.h(394) : 见“SO_DONTLINGER”的先前定义
2>c:\program files\windows kits\8.0\include\shared\ws2def.h(217): error C2011: 'sockaddr' : 'struct' 类型重定义
2> c:\program files\windows kits\8.0\include\um\winsock.h(477) : 见'sockaddr'声明

之前删除了一些为每个 UDT 函数定义 dllexport/dllimport 的代码:

#define UDT_API // no dllimport/export

我检查过库总是使用#ifdef 来检查文件是否已经包含。而这个错误:

windows 套件\8.0\include\um\ws2tcpip.h(703):错误 C3861:“WSASetLastError”:找不到标识符

可能是因为该表达式中的 const 关键字(udt 内部某处):

UDT_API int bind(UDTSOCKET u, const struct sockaddr* name, int namelen);

我缺少什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com