无法将Qt Quick应用程序部署到Mac OSX

时间:2014-01-03 02:12:08

标签: macos qt qml qtquick2

我正在尝试将应用程序部署到Mac OSX,但它不起作用。

在构建我的应用程序后,它似乎工作正常,在Qt Creator中运行,我使用QML和C ++来构建应用程序。我使用了命令行:

macdeployqt MyApp.app -dmg

之后生成.dmg文件,但内部的应用程序不起作用。它打开一个空窗口。更糟糕的是,在部署应用程序执行后,我在Qt Creator中的应用程序也开始只显示一个显示以下输出的空窗口:

  

qrc:/qml/main.qml:1:1:未安装模块“QtQuick”
  qrc:/qml/main.qml:4:1:未安装模块“QtQuick.Controls”
  qrc:/qml/main.qml:2:1:未安装模块“QtQuick.Dialogs”
  qrc:/qml/main.qml:1:1:未安装模块“QtQuick”
  qrc:/qml/main.qml:4:1:未安装模块“QtQuick.Controls”
  qrc:/qml/main.qml:2:1:未安装模块“QtQuick.Dialogs”
  qrc:/qml/main.qml:1:1:未安装模块“QtQuick”
  qrc:/qml/main.qml:4:1:未安装模块“QtQuick.Controls”
  qrc:/qml/main.qml:2:1:未安装模块“QtQuick.Dialogs”

otool -L向我展示了这一点:

  

@executable_path /../框架/ QtQuick.framework /版本/ 5 / QtQuick   (兼容版本5.2.0,当前版本5.2.0)
  @executable_path /../框架/ QtQml.framework /版本/ 5 / QtQml   (兼容版本5.2.0,当前版本5.2.0)
  @executable_path /../框架/ QtNetwork.framework /版本/ 5 / QtNetwork   (兼容版本5.2.0,当前版本5.2.0)
  @executable_path /../框架/ QtCore.framework /版本/ 5 / QtCore   (兼容版本5.2.0,当前版本5.2.0)
  @executable_path /../框架/ QtGui.framework /版本/ 5 / QtGui   (兼容版本5.2.0,当前版本5.2.0)
  /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL   (兼容版本1.0.0,当前版本1.0.0)
  /System/Library/Frameworks/AGL.framework/Versions/A/AGL(兼容性   版本1.0.0,当前版本1.0.0)/usr/lib/libstdc++.6.dylib   (兼容版本7.0.0,当前版本60.0.0)
  /usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前   版本1197.1.1)

我删除了我在系统中的所有旧Qt库(或者我想,现在在其他任何地方都找不到Qt,只有5.2安装)。 任何人都知道发生了什么事?

2 个答案:

答案 0 :(得分:12)

从Qt 5.2开始,macdeployqt添加了一个新选项,用于解析所有QML文件,以查看所需的框架并正确复制它们。这就是我为我的app启动macdeployqt的方法:

macdeployqt path/to/my.app -qmldir=./path/to/my/qml/root -dmg

答案 1 :(得分:2)

我在Qt 5.0.1和Qt 5.1.0中遇到了同样的问题。为了解决这个问题,我创建了自己的macdeployqt版本。我认为它适用于Qt 5.2.0。请检查一下:https://github.com/MaximAlien/macdeployqt