gpt4 book ai didi

windows - 将 Bonjour (dns_sd.h) 库添加到 Windows 中的 Qt

转载 作者:可可西里 更新时间:2023-11-01 11:14:43 28 4
gpt4 key购买 nike

我一直在尝试正确添加 Apple 提供的开源 dns_sd.h 库。我正在编写一个使用 BonjourRegistrar 类的程序,如下所示: link text

我已经在 Mac 环境下编写了我的程序,现在我正在尝试将它移植到 Windows。 Bonjour SDK 带有几个类,我很困惑如何正确地将类添加到我的 Qt 项目中。我试过添加行:

win32:LIBS += c:\dnsssd.lib

在 .pro 文件中没有成功。此外,我尝试将 dns_sd.h 和 dns_sd.c 文件添加到我的项目中,但出现了一些错误,例如:

'UINT8': 没有命名类型'INT8':没有命名类型'UINT16' 没有命名类型'INT16' 没有命名类型

最后,我现在正尝试按照 xcimo 在此链接中的描述修改 lib 文件 link text

我不知道我是否使用了正确的命令来正确修改这些文件。

最佳答案

Apple 发布的 .lib 只能在使用 MSVC 编译器编译 Qt 应用程序时使用。

否则,如您所说,您需要一个与 GCC 兼容的库 (.a)。为此,您需要执行以下步骤:

  1. 在 .lib 上运行 reimp 工具 [0]:reimp dnssd.lib。将生成文件 DLLStub.obj
  2. 在 .dll 上运行 gendef 工具 [1]:gendef dnssd.dll。将生成文件 dnssd.def。 .dll 可以从以下位置获取:C:\Windows\System32 如果您使用的是 32 位版本,或者从 C:\Windows\SysWOW64 获取 64 位版本。
  3. 组装最终的 .a:dlltool -k -d dnssd.def -l libdnssd.a
  4. 将 .pro 文件的正确路径添加到新创建的库:LIBS += -L"/path/to/the/library/file"-ldnssd

[0] - http://sourceforge.net/projects/mingw/files/MinGW/Extension/mingw-utils/mingw-utils-0.4-1/

[1] - http://sourceforge.net/projects/mingw/files/MinGW/Extension/gendef/gendef-1.0.1346/ - gendef 是 pexports 的更好替代品,因为它可以将 stdcall 类型的库从 MSVC 转换为 GCC 的,因此您可以获得合适的 .def 文件。

PS:我知道作者成功了,但我觉得应该有一些关于如何完成它的更详细的说明——这些信息散布在互联网上。

关于windows - 将 Bonjour (dns_sd.h) 库添加到 Windows 中的 Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341179/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com