【问题标题】:mingw-w64 searches for libws2_32.dll instead of ws2_32.dllmingw-w64 搜索 libws2_32.dll 而不是 ws2_32.dll
【发布时间】:2016-01-25 22:10:24
【问题描述】:

使用 mingw-w64 版本 4.9.1,与 MSYS2 安装程序一起安装,我正在构建一个 DLL 并使用 -lws2_32 选项将其链接到 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 可以找到它。然而,这似乎是一个糟糕的 hack。我试过-l:ws2_32,因为我读到“:”有特殊含义,但这并没有什么区别。

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

【问题讨论】:

  • 已经有一段时间了,所以这可能不起作用,但请尝试与 -lws2_32.dll 链接。
  • 另外,也可以尝试在命令行中指定.dll的名称不带-l
  • 您应该可以使用-l:ws2_32.dll。使用冒号,您必须指定完整的文件名,包括扩展名,但链接器仍会在库路径中搜索它。

标签: c windows dll mingw-w64


【解决方案1】:

您是否尝试过放弃-l 选项?

只是

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

输入 gcc 的项目要么是目标文件,要么是库。 -l 选项只是一种更容易链接常用事物的常用方法。旧屁很简洁。 -lm 而不是输入 -L/path/to/lib libmath.o

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-01-12
      • 2015-05-26
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      相关资源
      最近更新 更多