如何链接winsock.lib?
Posted
技术标签:
【中文标题】如何链接winsock.lib?【英文标题】:How to link winsock.lib? 【发布时间】:2012-03-04 05:27:06 【问题描述】:在我的 C++ 类中,我使用套接字。
我在链接时遇到了一些错误,因为我认为库 winsock.lib 丢失了。
我包括了这些:
#ifdef WIN32
#include <winsock.h>
typedef int socklen_t;
typedef char raw_type;
#endif
如何链接库winsock.lib
?
我使用的是 Windows XP 和 Visual Studio 2005。
【问题讨论】:
【参考方案1】:winsock的lib文件为“ws_32.lib”(或“ws2_32.lib”),请确认已添加。
【讨论】:
好的,一个问题.. 有没有一个名为 winsock.lib 的库? 您需要一台时间机器才能回到 16 位版本的 SDK。 我认为正确的库名称是ws2_32.lib 是的,有。以Windows Mobile SDK 5.0 for PocketPC 为例。 找不到 ws_32.lib。【参考方案2】:我无法找到直接链接显示要使用什么库,但如果你研究this,你会发现,WSOCK32.DLL
支持 windows sockets 1.1,也就是说,可能,您想要WSock32.Lib
,而不是Ws2_32.lib
用于windows socket version 2。
WSock32.Lib
是Windows SDK
的一部分(我安装了 v6.0A、v7.0A,两者都有这个库)
【讨论】:
【参考方案3】:一种方法是您可以在 cpp 文件中添加一个 pragma 指令:
#pragma comment(lib, "ws2_32.lib")
另一种方法是您可以将其提供给项目设置,使用构建二进制文件的项目(如果您的解决方案有很多,请不要从库项目中执行此操作)
第三种变体是如果您从命令行调用链接器,则将其作为命令行标志提供
【讨论】:
以上是关于如何链接winsock.lib?的主要内容,如果未能解决你的问题,请参考以下文章
Qt (Creator) 与 WinSocks (ws2_32)