C TCp通訊遇到的無法解析外部符號

2021-07-05 18:15:39 字數 2975 閱讀 1063

當在vs2005編寫wince程式時,如果包含winsock2.h後使用socket的相關函式,則編譯會出現如下錯誤:

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 wsacleanup,該符號在函式 "private: int __cdecl ctcpserver_ce::initializesocket(void)" (?initializesocket@ctcpserver_ce@@aaahxz) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 wsastartup,該符號在函式 "private: int __cdecl ctcpserver_ce::initializesocket(void)" (?initializesocket@ctcpserver_ce@@aaahxz) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 ioctlsocket,該符號在函式 "private: static unsigned long __cdecl ctcpserver_ce::tcplistentheadfunc(void *)" (?tcplistentheadfunc@ctcpserver_ce@@cakpax@z) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 accept,該符號在函式 "private: static unsigned long __cdecl ctcpserver_ce::tcplistentheadfunc(void *)" (?tcplistentheadfunc@ctcpserver_ce@@cakpax@z) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 __wsafdisset,該符號在函式 "private: static unsigned long __cdecl ctcpserver_ce::tcplistentheadfunc(void *)" (?tcplistentheadfunc@ctcpserver_ce@@cakpax@z) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 closesocket,該符號在函式 "private: static unsigned long __cdecl ctcpserver_ce::tcplistentheadfunc(void *)" (?tcplistentheadfunc@ctcpserver_ce@@cakpax@z) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 select,該符號在函式 "private: static unsigned long __cdecl ctcpserver_ce::tcplistentheadfunc(void *)" (?tcplistentheadfunc@ctcpserver_ce@@cakpax@z) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 wsagetlasterror,該符號在函式 "private: static unsigned long __cdecl ctcpserver_ce::tcpthreadfunc(void *)" (?tcpthreadfunc@ctcpserver_ce@@cakpax@z) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 recv,該符號在函式 "private: static unsigned long __cdecl ctcpserver_ce::tcpthreadfunc(void *)" (?tcpthreadfunc@ctcpserver_ce@@cakpax@z) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 listen,該符號在函式 "public: int __cdecl ctcpserver_ce::open(void)" (?open@ctcpserver_ce@@qaahxz) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 bind,該符號在函式 "public: int __cdecl ctcpserver_ce::open(void)" (?open@ctcpserver_ce@@qaahxz) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 htonl,該符號在函式 "public: int __cdecl ctcpserver_ce::open(void)" (?open@ctcpserver_ce@@qaahxz) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 htons,該符號在函式 "public: int __cdecl ctcpserver_ce::open(void)" (?open@ctcpserver_ce@@qaahxz) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 socket,該符號在函式 "public: int __cdecl ctcpserver_ce::open(void)" (?open@ctcpserver_ce@@qaahxz) 中被引用

1>tcpserver.obj : error lnk2019: 無法解析的外部符號 send,該符號在函式 "public: int __cdecl ctcpserver_ce::senddata(char const *,unsigned long)" (?senddata@ctcpserver_ce@@qaahpbdk@z) 中被引用

網上找了很久都沒有解決方法,錯誤產生的原因是由於在win32智慧型裝置控制台時使用了mfc的api,有很多網友說包含:#pragma comment(lib, "ws2_32.lib")就可以解決,實際上對於wince控制台程式還是無法使用,可以考慮使用#pragma comment(lib, "winsock.lib")即使用version 1.0的庫,但是還會有一些無法找到,個人摸索了好久,終於找到解決方法,#pragma comment(lib, "ws2.lib"),一切搞定。特共享給有同樣煩惱的朋友。

簡單的c TCP通訊

tcp 通訊 2009年8 月23日星期日 伺服器using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system...

無法解析的外部符號

在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...

無法解析的外部符號

在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...