构建Apache Axis2 / C时未声明的标识符SO_EXCLUSIVEADDRUSE

时间:2008-11-07 16:33:41

标签: visual-studio axis winsock

我正在尝试构建Apache Axis2 / C(实际上我正在为它构建WSO2 WSF / C ++包装器)并且当它遇到符号SO_EXCLUSIVEADDRUSE时它一直给我一个错误。这是一个套接字选项,MSDN说它应该可用。我在Win Server 2k3上使用MSVC ++ 6.0。我没有关于编译器或操作系统的选择......如果我在linux上,我已经完成了:P

我查看了一个VS2005安装,发现它在winsock2.h中包含该常量的#define。我在winock2.h中不存在MSVC6。此外,在VS2005中,它位于VS2005目录内的PlatformSDK文件夹下,而MSVC6上似乎没有任何此类目录。为什么这个符号丢失了?我怎么才能得到它?我很想把它复制过来,但是谁知道我还会在路上遗漏什么......有什么想法吗?

1 个答案:

答案 0 :(得分:1)

自Visual Studio .Net 2003以来,Microsoft改变了提供PlatformSDK的方式。它允许C / C ++编译器使用除了带有VC包的捆绑版本之外的PlatformSDK。

您可以为Windows Server 2k3安装PlatformSDK,但最后使用VC 6.0的SDK是2003年2月版,Microsoft网站无法提供。

因此,在使用#define之前,您只需将SO_EXCLUSIVEADDRUSE复制到您的代码即可。它应该由Win2k3工作和支持。