近期由於項目要求,需要用到windows下的網路編程,由於以前自己總是在linux下開發,對windows平台不太熟悉,最近兩天看了一些資料,寫了個簡單的伺服器socket接收用戶端請求,可是在編譯時間出現以下提示:
Linking...
IProxy.obj : error LNK2019: unresolved external symbol __imp__WSAStartup@8 referenced in function "void __cdecl StartWinsock(void)"
(?StartWinsock@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__accept@12 referenced in function "void __cdecl StartProxyServer(void)"
(?StartProxyServer@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__listen@8 referenced in function "void __cdecl StartProxyServer(void)"
(?StartProxyServer@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__bind@12 referenced in function "void __cdecl StartProxyServer(void)"
(?StartProxyServer@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__htons@4 referenced in function "void __cdecl StartProxyServer(void)"
(?StartProxyServer@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__WSACleanup@0 referenced in function "void __cdecl StartProxyServer(void)"
(?StartProxyServer@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__socket@12 referenced in function "void __cdecl StartProxyServer(void)"
(?StartProxyServer@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__connect@12 referenced in function "void __cdecl StartProxyClient(void)"
(?StartProxyClient@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__gethostbyname@4 referenced in function "void __cdecl
StartProxyClient(void)" (?StartProxyClient@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__send@16 referenced in function "void __cdecl StartProxy(void)"
(?StartProxy@@YAXXZ)
IProxy.obj : error LNK2019: unresolved external symbol __imp__recv@16 referenced in function "void __cdecl StartProxy(void)"
(?StartProxy@@YAXXZ)
C:\Documents and Settings\Owner\My Documents\Visual Studio 2005\Projects\HProxy\Debug\HProxyDLL.dll : fatal error
LNK1120: 11 unresolved externals
後來才知道,原因在於工程中未增加合適的靜態庫檔案造成的,只需要在工程中增加以下代碼,在編譯過程中讓靜態庫參與連結成可執行程式即可。
#pragma comment(lib, "ws2_32.lib")