mingw-w64 搜索 libws2_32.dll 而不是 ws2_32.dll

mingw-w64 searches for libws2_32.dll instead of ws2_32.dll

使用 mingw-w64 版本 4.9.1,与 MSYS2 安装程序一起安装,我正在构建一个 DLL 并使用 -lws2_32 选项将其 link 转换为 ws2_32.dll。但是mingw-w64找不到那个名字下的ws2_32.dll:

*** Warning: linker path does not have real file for library -lws2_32.

如果我进入C:\Windows\system32然后复制ws2_32.dlllibws2_32.dll,那么mingw-w64就可以找到了。然而,这似乎是一个糟糕的黑客攻击。我试过 -l:ws2_32 因为我读到“:”有特殊含义,但这没有什么区别。

如何告诉 mingw-w64 到 link 到名称不以 lib 开头的 Windows DLL?

您是否尝试过 fore-going -l 选项?

gcc -LC:\Windows\system32 herpmytargetcodederp.c ws2_32.dll

输入 gcc 的项目要么是目标文件,要么是库。 -l 选项只是一种常用的链接方式,可以更轻松地链接常用的东西。老屁很简洁。 -lm 而不是输入 -L/path/to/lib libmath.o

包含链接器用 -L 找到它的路径并按名称调用它。

您不 link DLL 本身,而是定义 dll 导出的库 (libws2_32.a),如果 libws2_32.a,请检查您的 MingW (\lib) 目录存在。