Visual c++ 使用winsocks的库:未解析的外部符号

Visual c++ 使用winsocks的库:未解析的外部符号,visual-c++,static-libraries,winsock,Visual C++,Static Libraries,Winsock,我创建了一个使用winsocks的库,我使用以下命令编译它: cl /c myLib.c /link ws2_32.lib lib myLib.obj 因此获得myLib.lib,一切都正常 现在,我编写了一个测试程序test.c,其中我做了: #include "myLib.h" //... i use some functions // 我用 cl test.c /link myLib.lib 但我得到: myLib.lib(myLib.obj):错误LNK2001:未解析的外部符号

我创建了一个使用winsocks的库,我使用以下命令编译它:

cl /c myLib.c /link ws2_32.lib
lib myLib.obj
因此获得myLib.lib,一切都正常

现在,我编写了一个测试程序test.c,其中我做了:

#include "myLib.h"

//... i use some functions //
我用

cl test.c /link myLib.lib
但我得到:

myLib.lib(myLib.obj):错误LNK2001:未解析的外部符号\u imp\u connec t@12 myLib.lib(myLib.obj):错误LNK2001:未解析的外部符号@ 4. myLib.lib(myLib.obj):错误LNK2001:未解析的外部符号\u imp\u inet\u a ddr@4 myLib.lib(myLib.obj):错误LNK2001:未解析的外部符号\u imp\u套接字 @12 myLib.lib(myLib.obj):错误LNK2001:未解析的外部符号\u imp\u WSASta rtup@8 myLib.lib(myLib.obj):错误LNK2001:未解析的外部符号\u imp\u WSACle anup@0 logbus.lib(logbus.obj):错误LNK2001:未解析的外部符号\u imp\u关闭 ocket@4 test.exe:致命错误LNK1120:7个未解析的外部

编辑: 好的,如果我在ws2_32.lib中添加一个链接,它也可以工作。
无论如何,我不喜欢它:我在创建我的库时已经链接了这个库,所以我只想链接到myLib.lib…这可能吗?

您可以尝试中的建议,基本上是在您自己的库中包含
ws2_32.lib

cl /c myLib.c /link ws2_32.lib
lib /out:myLib.lib myLib.obj ws2_32.lib
理论上,这将构成一个复合库。然而,问题是如果你发行
myLib.lib
——我不确定这是否合法,因为你会包括受版权保护的代码

顺便说一句,但我把它包括在内,因为它非常有趣而且有点相关,Raymond Chen最近在上写了一系列文章。

我解决了使用#pragma指令将Win32包含到myLib.lib中的问题