在Windows中将Bonjour(dns_sd.h)库添加到Qt

son*_*876 1 windows qt bonjour

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

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

win32:LIBS += c:\dnsssd.lib
Run Code Online (Sandbox Code Playgroud)

在.pro文件中没有成功.此外,我试图将dns_sd.h和dns_sd.c文件添加到我的项目中,并得到一些错误,例如:

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

最后,我现在尝试在此链接链接文本中修改xcimo所描述的lib文件

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

Tim*_*tei 5

只有在使用MSVC编译器编译Qt应用程序时,才能使用Apple分发的.lib.

否则,就像你说的那样,你需要一个与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\SysWOW6464位版本.
  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:我知道作者得到了它的工作,但我觉得应该有一些更详细的说明如何完成它 - 信息分散在互联网上.