我正在尝试将应用程序部署到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安装)。 任何人都知道发生了什么事?
答案 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。