我创建了一个使用 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:无法解析的外部符号_imp _connec t@12 myLib.lib(myLib.obj):错误 LNK2001:无法解析的外部符号_imp _htons @4 myLib.lib(myLib.obj):错误 LNK2001:未解析的外部符号_imp _inet_a ddr@4 myLib.lib(myLib.obj):错误 LNK2001:未解析的外部符号_imp _socket @12 myLib.lib(myLib.obj):错误 LNK2001:未解析的外部符号_imp _WSASta rtup@8 myLib.lib(myLib.obj):错误 LNK2001:无法解析的外部符号_imp _WSACle anup@0 logbus.lib(logbus.obj):错误 LNK2001:无法解析的外部符号_imp _closes ocket@4 test.exe:致命错误 LNK1120:7 个未解决的外部问题
编辑:好的,如果我编译添加到 ws2_32.lib 的链接也可以。无论如何我不喜欢它:我在创建我的库时已经链接了这个库,所以我只想链接到 myLib.lib ......这可能吗?