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 つの未解決の外部情報
編集: OK、ws2_32.lib へのリンクを追加してコンパイルすると、動作します。とにかく私はそれが好きではありません:私は自分のライブラリを作成したときにすでにこのライブラリをリンクしているので、myLib.libにリンクしたいだけです...それは可能ですか?