2008-11-07 26 views
0

我試圖構建Apache Axis2/C(實際上我正在爲它構建WSO2 WSF/C++包裝器),它在遇到符號時會一直給我一個錯誤SO_EXCLUSIVEADDRUSE。這是一個套接字選項,MSDN表示它應該可用。我在Win Server 2k3上使用MSVC++ 6.0。我沒有關於編譯器或操作系統的選擇......如果我在linux上,我已經完成了:P未聲明的標識符SO_EXCLUSIVEADDRUSE當構建Apache Axis2/C

我查看了一個VS2005安裝,發現它包含#define那個常數在winsock2.h中。在winsock2.h中沒有MSVC6。此外,在VS2005中,它位於VS2005目錄內的PlatformSDK文件夾下,而MSVC6上似乎沒有任何此類目錄。爲什麼這個符號缺失?我怎麼才能得到它?我很想複製它,但是誰知道我還會錯過什麼?......有什麼想法?

回答

1

自Visual Studio .Net 2003以來,Microsoft改變了交付PlatformSDK的方式。它允許C/C++編譯器使用除VC捆綁版本以外的PlatformSDK。

您可以安裝適用於Windows Server 2k3的PlatformSDK,但最後一個可與VC 6.0一起使用的SDK是2003年2月版,該版本不可從Microsoft網站獲得。

因此,您可以在使用SO_EXCLUSIVEADDRUSE之前簡單地將#define複製到您的代碼。它應該由Win2k3工作和支持。