您的位置:首页 > 理论基础 > 计算机网络

C++ TCp通信遇到的无法解析外部符号

2015-10-11 12:00 441 查看
当在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"),一切搞定。特共享给有同样烦恼的朋友。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: