【问题标题】:Macdeployqt is not workingMacdeployqt 不工作
【发布时间】:2013-07-30 20:50:25
【问题描述】:

我已经安装了最新版本的 Qt (5.1),当我尝试使用 macdeployqt 工具在 Mac 上部署我的应用程序时,该应用程序仍然无法在其他 Mac 上运行。它完全可以在我的 Mac 上运行,并且不表示任何错误。经过研究,我发现了这一点,我认为这是我的问题:Qt 5.1 and Mac: Bug making macdeployqt not working properlyhttps://bugreports.qt-project.org/browse/QTBUG-14699 但是这个解释对我来说太技术性了(+ 英语不是我的母语),我是一个完整的初学者,你能解释一下我需要做什么才能让我的应用程序在 Mac 上运行吗?一步步 ?它在 Windows 上完美运行(使用标准 dll)。

非常感谢,我认为它会帮助很多遇到同样问题的初学者。

【问题讨论】:

  • 您自己给出答案。阅读您的第一个链接部分UPDATE, HOW TO DEPLOY: 并关注它。一般: 1. 修正双斜线。 2. 编译自己的macdeployqt。 3. 使用给定的 qml 目录调用 macdeployqt。

标签: c++ qt macdeployqt


【解决方案1】:

您可以使用 3 个工具来整理 Qt for OS X (MacOS) 的部署。

  1. macdeployqt:此工具收集您的应用程序在其项目中声明需要的所有 Qt 库,将它们添加到应用程序包并更新它们的路径,以便您的应用程序知道在哪里可以找到它们。

  2. otool:用于检查二进制文件内容的复杂工具,但在这种情况下,与-L 参数一起使用,将显示应用程序将引用的所有库的路径。这些是它寻找这些库的路径。

  3. install_name_tool:由于macdeployqt 仅处理应用程序所需的 Qt 库,因此您可以使用 install_name_tool 更新应用程序所需的任何其他库的路径。例如,如果您的应用程序依赖于一个单独的非 Qt 框架,则需要有一个编译后步骤将框架复制到应用程序包中,然后使用install_name_tool 更新框架的路径。

如果您遇到问题,请检查库/框架是否已复制到应用程序包中的正确位置,然后使用otool -L 检查路径。如果有错误,请使用 name_install 工具修复它们。

如果您仍然无法使用它,请编辑您的问题并添加使用 otool -L 的输出。

注意,从历史上看,各种版本的 Qt 都遇到了 macdeployqt 实用程序的错误,所以如果它不能正常工作,你可能还想check the qt bug tracker

【讨论】:

  • 感谢您的回答,但我已经尝试过,但它仍然无法正常工作......我只会让 windows 应用程序可用,因为它让我很紧张,它不应该比使用更复杂macdeployqt 工具
  • 这并不难,一旦你明白发生了什么。在可执行文件上发布运行 otool -L 的输出。例如:otool -L /Applications/Calculator/Contents/MacOS/Calculator
  • 您好,非常感谢您的支持并愿意提供帮助,这真的很酷很友善。我将应用程序发送给了许多使用 Mac 的朋友,最后我注意到只有运行 Mavericks (10.9) 的朋友有问题。后来通过 Google 搜索,我发现 Qt 根本不支持 Mavericks。就是这么简单。
  • 没问题,感谢您的更新。我想我需要在不久的将来在 Mavericks 上测试我自己的代码,但我会更多地认为它是 Mavericks 不支持 Qt,因为操作系统仍然是测试版,所以那里没有任何保证。
猜你喜欢
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 2018-02-08
相关资源
最近更新 更多