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

2023-11-29

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

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

win32:LIBS += c:\dnsssd.lib

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

'UINT8':未命名类型 “INT8”:未命名类型 “UINT16”未命名类型 “INT16”未命名类型

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

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


仅当您使用 MSVC 编译器编译 Qt 应用程序时,才能使用 Apple 分发的 .lib。

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

  1. Run the reimp.lib 上的工具 [0]:reimp dnssd.lib。一份文件DLLStub.obj将被生成。
  2. Run the gendef.dll 上的工具 [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:我知道作者成功了,但我觉得应该有一些关于如何完成它的更详细的说明——这些信息分散在互联网上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 中将 Bonjour (dns_sd.h) 库添加到 Qt 的相关文章

  • 在 QML 中控制纹理 3D 对象的不透明度

    我对 QML 中的 Qt 3D 有点陌生 我正在尝试控制 Qt 3D 的不透明度textured3D 对象 我正在使用简单qml3d https github com tripolskypetr simpleqml3d测试项目来做到这一点
  • 如何从键盘为 QTableWidget 创建信号?

    我有一张桌子 可以通过左 右 上 下按钮在里面移动 现在 当我停留在某个单元格并按空格键时 我需要创建一个信号 该信号还应该带来该单元格的坐标 我尝试使用 QTableWidget 的标准信号 但它不起作用 我该如何解决这个问题 创建一个单
  • Perl:管理 Windows 上的路径编码

    我正在努力处理包含非英文字符的路径 Activestate Perl Windows XP 如何打开 写入 复制等位于包含希腊语 俄语 法语重音字符的路径中的文件 假设我要将 text txt 文件复制到的目录是 C Documents a
  • 将 SWI Prolog 代码编译为 Windows 可执行文件 - 解析器 Grails3 项目

    我正在尝试构建解析器 Grails3 项目https github com RichardMoot Grail https github com RichardMoot Grail谁的教程是http www labri fr perso m
  • 更改 Qt 中的语言环境

    我尝试使用 QLocale 和 setDefault 函数更改区域设置 但似乎不起作用 以下是使用 C 本地化库和 QLocale 更改语言环境的示例 对于 C 本地化库 它似乎可以工作 但对于 QLocale setDefault 函数调
  • 如何从笔记本电脑检测电源按钮事件并在 Windows 7 上拒绝它

    在 Windows XP 上 我可以在按下笔记本电脑的电源按钮时检测到事件 获取APMQUERYSUSPEND事件的条件是 控制面板 gt 电源选项 gt 系统设置 gt 按下电源按钮时 gt 睡眠 选项必须更改为 睡眠 MainFrm O
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 有没有使用 Java 访问 Windows COM 方法的方法?

    我有一个应用程序 它利用 JNA 来调用 C 硬件抽象库中的函数 支持的硬件设备之一需要初始化 Windows COM 子系统 通过 CoInitialize 或 CoInitializeEx 有谁知道有什么 Java 库可以做到这一点吗
  • MinGW g++ 在自己的包含目录中找不到标头

    所以我最近通过最新版本安装了 MinGWnuwen 的 MinGW 发行版 http nuwen net mingw html其中包括 boost C 库 具体来说 我正在寻找 boost 库提供的scoped ptr 但是 当我尝试包含s
  • 如何使用样式表删除 QWizard 中的水平线?

    我正在研究一个样式表QWizard我想删除按钮上方的水平线 我已经发布了一个最小的例子here https stackoverflow com q 52538669 8570451 这个问题是由scopchanov从最小的例子中解决的 但是
  • 如何将 .bat 文件中的变量获取到 PowerShell 脚本中?

    我正在用 PowerShell 替换 bat 脚本的部分内容 批处理文件的配置是通过以下文件完成的set适当的环境变量 我正在寻找一种方法将这些变量值加载到 ps1脚本 无需修改 bat文件 因为它们也在其他地方使用 一个例子 bat看起来
  • 为什么 %processor_architecture% 总是返回 x86 而不是 AMD64

    我正在尝试检索环境变量来检测系统是32位还是64位 但在64位服务器上环境变量 processor architecture 正在返回x86代替AMD64 有人对此有任何线索吗 您可能获得了错误的环境变量 如果您的应用程序是在 64 位操作
  • 在 python 2 或 python 3 中编写 csv 文件的便携式方法

    在我的 Windows 机器上 我通常在 python 2 中这样做来编写 csv 文件 import csv f open out csv wb cr csv writer f delimiter cr writerow a b c f
  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • 如何使用 cython 编译扩展?

    我正在尝试从示例页面编译一个简单的 cython 扩展here http docs cython org src userguide tutorial html在我安装了 Python 2 6 64 位版本的 Windows 7 64 位计
  • NSIS获取参数

    to get n 0值作为字符串 不需要选项 传递给安装程序 我不太明白这个函数的工作原理是什么 GetParameters input none output top of stack replaces with e g whatever
  • 如何从 ffmpeg 中打开的文件获取流信息?

    我正在尝试使用 ffmpeg 读取视频文件 我有与其旧版本相对应的工作代码 并开始尝试升级到最新的构建版本 将所有这些已弃用的函数替换为其实际的类似函数 但是我遇到了问题 似乎没有检索到任何流 并且视频负载停止在轨道中 这是我正在使用的代码
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 如何从页眉和/或页脚确定 PE 可执行文件的大小

    假设您有要雕刻的数据流或字节块 如何确定可执行文件的大小 PE 可执行文件格式中有许多标头 但是我使用哪些标头部分来确定 如果可能 可执行文件的总长度 这是文件格式的图片 如果PE文件格式良好 计算可以简化为 伪代码 size IMAGE
  • select() 可以在 Windows 下使用 Python 中的文件吗?

    我正在尝试在 Windows 下运行以下 python 服务器 An echo server that uses select to handle multiple clients at a time Entering any line o

随机推荐

  • android.view.InflateException:二进制 XML 文件行 #20:膨胀类片段时出错

    我在 stackoverflow 中找到了类似的主题 但对我没有帮助 我正在使用片段显示谷歌地图 在获取另一个片段并返回后它崩溃了 换句话说 谷歌地图只显示一次并崩溃 这是代码 public class MapTabMainFragment
  • ASP.NET MVC Core 3.0 - 为什么来自 body 的 API 请求不断返回 !ModelState.IsValid?

    我目前正在使用ASP NET MVC Core 3 0创建一个 API 项目 我成功发送了一个不带参数的POST请求 但目前我在尝试通过 Postman 发送带有 JSON 参数的 POST 请求时遇到问题 总是收到无效请求 如下所示 请注
  • 具有动态列数的 SQL 视图

    我知道直接不可能 但也许在 sql 函数的帮助下可以创建具有动态列计数的视图 我到底想要做的是 创建视图 其列将是用户名 第一个表的值 日期 第二个表的值 和多列属性 第三个表的每个行将是列 用户表结构 ID 和用户名 日期表结构 ID和日
  • 如何使用 jQuery 和 cookies 删除现有的类名并添加新的类名?

    如何删除类名并用新名称替换它 ul li a href red a li li a href green a li li a href blue a li ul 在这种情况下 当您单击红色或绿色或蓝色时 主体类名称将相应更改 它还会制作一个
  • openpyxl 和 stdev.p 名称错误

    我有一个脚本来格式化一堆数据 然后将其推送到 Excel 中 我可以在其中轻松清理损坏的数据 并进行更多分析 作为其中的一部分 我将大量数据推送到 Excel 并希望 Excel 完成一些跑腿工作 因此我将一定数量的公式放入表格中 其中大多
  • 为什么 DispatcherServlet 创建另一个应用程序上下文?

    我已经使用配置了根应用程序上下文ContextLoaderListener和上下文初始化参数contextConfigLocation 然后 JSF jsf 变量解析器访问根上下文 效果很好 现在的问题是 请求 do 正在通过Dispatc
  • 如何循环目录中的文件并更改路径并向文件名添加后缀

    我需要编写一个脚本 用不同的参数启动我的程序 我开始我的程序 MyProgram exe Data data1 txt Logs data1 Log txt 这是我想做的事情的伪代码 for each filename in Data do
  • 用于测量 Java 代码的经验计算复杂性的工具?

    我有一些 Java 代码 我希望测量它们的经验计算复杂性 有一个趋势教授以编译输入为输入的工具C C 程式 是否有类似于 trend prof 的工具 可以将编译后的 Java 程序作为输入 声纳常用 http www sonarsourc
  • LEFT JOIN 仅第一行

    我读过很多关于仅获取左连接的第一行的线程 但是 由于某种原因 这对我不起作用 这是我的结构 当然是简化的 Feeds id title content 1 Feed 1 Artists artist id artist name 1 Art
  • ASP.NET MVC:路由到 URL

    在 MVC 中获取路由的 URL 相对或绝对 的最简单方法是什么 我在 SO 上看到了这段代码 但它看起来有点冗长 并且没有枚举 RouteTable Example List
  • 您可以从 html 元素触发 Sencha Touch 中的操作/事件吗?

    我有一个 Sencha 选项卡面板 每个选项卡通过 ajax 加载 html 内容 其中一个组件是帖子 列表 访问者可以使用它再次向下钻取以阅读整个帖子 我的问题是 我可以通过html触发视图切换吗 或者我应该通过 JSON 加载帖子数据
  • Objective-C 中成员变量名称中的下划线表示什么? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Objective C 中使用下划线作为属性名称前缀 我是一名 C C 开发人员 正在学习 Objective C 最近我开始学习在网上找到的教程 代码如下 interface MapDemoAn
  • android eclipse 更新,现在应用程序在尝试运行时崩溃

    我的应用程序正在运行 我没有更改源代码中的任何内容 Eclipse 已更新 现在当我尝试运行该应用程序时 它无法打开 并且会显示错误消息 您必须强制关闭它 它甚至没有像我以前见过的其他等待选项 我知道这信息很少 但这就是我所拥有的一切 这就
  • C# 事件和线程安全

    我经常听到 读到以下建议 在检查事件之前 请务必先复制该事件null并开火 这将消除事件变为线程的潜在问题null在检查 null 的位置和触发事件的位置之间的位置 Copy the event delegate before checki
  • iPhone UIViewController 内的 UINavigationController

    Steps 项目清单 创建一个名为 Nav 的项目 创建一个新的UIViewControllerBaseViewController 使用 XIB 和 FirstViewController 使用 XIB In the NavAppDele
  • 如何在Linux中操作页面缓存?

    我想知道Page Cache中缓存了哪些文件 并且想实用地释放特定文件的缓存空间 如果需要的话 我可以编写内核模块 甚至修改内核代码 有人能给我一些线索吗 首先 内核不会维护页面缓存中所有文件的主列表 因为它不需要此类信息 相反 给定一个索
  • 如何使用 PySpark 删除数据框中基于多个过滤器的列?

    我有一个单元格可以具有的有效值列表 如果一列中的一个单元格无效 我需要删除整列 我知道有删除特定列中的行的答案 但在这里我将删除整个列 即使其中的一个单元格无效 有效 无效的条件是一个单元格只能有三个值 Messi Ronaldo Virg
  • 根据浏览器语言在

    我是 HTML 新手 我想在禁用 JavaScript 时显示一条消息 所以我把消息放进去
  • 如何将字符数组转换为字符串?

    转换 C string使用 char 数组非常简单c str字符串的函数然后做strcpy 然而 如何反其道而行之呢 我有一个 char 数组 例如 char arr This is a test 转换回 string str This i
  • 在 Windows 中将 Bonjour (dns_sd.h) 库添加到 Qt

    我一直在尝试正确添加Apple提供的开源dns sd h库 我正在编写一个使用 BonjourRegistrar 类的程序 如下所示 链接文本 我已经在Mac环境上编写了我的程序 现在我正在尝试将其移植到Windows Bonjour SD