我试图以可移植的方式部署Qt应用程序,而且我有点卡在插件部署上,documentation并不像我希望的那样清晰
首先,我从macdeployqt开始,但收到以下消息:
WARNING: Could not find any external Qt frameworks to deploy in "Utility.app"
WARNING: Perhaps macdeployqt was already used on "Utility.app" ?
WARNING: If so, you will need to rebuild "Utility.app" before trying again.
我检查了Qt5 cannot find platform plugins Mac OS X中建议的版本,但我没有看到任何证据表明我遇到过类似的问题(版本)。
所以,我开始手动做事,并且在复制了必要的框架(otool -L指出的那些框架)之后设法让我的计算机工作,并删除指向我本地Qt的LC_RPATH条目安装。
但是,我遇到了插件问题:如果我没有在应用程序中捆绑插件,它可以在本地工作,但不能在其他任何人的机器上工作。如果我在Utilities.app/Contents/plugins/platforms中捆绑libqcocoa.dylib,那么我会收到以下错误:
This application failed to start because it could not find or load the Qt platform plugin "cocoa"
in "".
Available platform plugins are: cocoa, minimal, offscreen.
Reinstalling the application may fix this problem.
中止陷阱:6
特别好奇,因为我没有复制最小或屏幕外平台插件......
我还尝试将QT_QPA_PLATFORM_PLUGIN_PATH设置为" ../ plugins / platforms"在构建步骤中,但似乎没有任何效果。我也在qt.conf文件中使用了几个不同的设置,但没有用。
我现在已经为此暂时追逐几种不同的解决方案,但请随意。当然,我错过了一些东西。
答案 0 :(得分:0)
尝试使用install_name_tool
为应用程序包内的qlibcocoa插件设置Qt框架的路径,如下所示:
install_name_tool -change @ rpath / QtCore.framework / Versions / 5 / QtCore @executable_path /../框架/ QtCore.framework /版本/ 5 / QtCore MyApp.app/Contents/plugins/platforms/libqcocoa.dylib
libqcocoa.dylib依赖于QtCore,QtGui,QtWidgets,QtPrintSupport。 他们都应该在MyApp.app/Contents/Frameworks中。
libqcocoa.dylib应该在 MyApp.app/Contents/plugins/platforms/libqcocoa.dylib
这适合我。