最近,我们一直在Windows上将基于QT的应用程序从QT 4.8迁移到QT 5,我们遇到了部署问题。请注意,我们的应用程序没有更改,我们只使用新的QT5框架构建它。通过一些努力,我们使用基于VS2010的QT5库进行构建;我从Qt Creator成功运行了应用程序。
正如我们对QT4所做的那样,我们在安装程序中包含了一组必需的QT库。
在我们的测试阶段,当我们将QT5应用程序安装在干净的机器上时;它不会开始。不仅应用程序没有启动,而且它没有输出任何错误。
我们通过依赖检查器运行了应用程序;并且根本没有缺少库依赖项。
答案 0 :(得分:37)
经过几天的搜索没有任何进展,我们偶然发现了一个QT错误:
https://bugreports.qt.io/browse/QTBUG-28766
使用QT5,除了预期的QT库,msvcr100.dll和msvcp100.dll;事实证明,您必须通过以下方式运送您的应用程序:
platforms/qminimal.dll
platforms/qwindows.dll
也是。您可以在本地QT5库中找到@:\ Qt5.0.0 \ 5.0.0 \ msvc2010 \ plugins \ platforms 我到处搜索,我无法在他们的文档中找到这些信息。
答案 1 :(得分:15)
让我运行独立的“Hello World”gui应用程序(Qt sdk 5.0.1 mingw,Win7 x64)。我需要将下一个文件添加到程序目录:
答案 2 :(得分:6)
更好的选择是使用:windeployqt.exe。此工具可解析application.exe的所有依赖项。
答案 3 :(得分:3)
是的,很好地发现了。我使用相同的部署问题 qt 5.0.2。
同样在应用程序中安装了具有这两个dll的平台文件夹 文件夹,以及vista和win7上的部署现在可以正常工作。
依赖步行者在这里没有帮助,因为它没有 根据需要通知qwindows.dll或qminimal.dll。
我的Qt安装中的平台dll位于 \ Qt的\ 5.0.2 \ mingw47_32 \插件\平台。
答案 4 :(得分:2)
Qt平台dll位于“qtbase”中的“plugins”文件夹中: C:\ Qt的\ 5.0.0 \ qtbase \插件\平台
答案 5 :(得分:2)
用于记事本教程,关于win7& qt5.1.1
部署步骤是:
* change build mode to release, not debug, * build, * create a output folder somewhere e.g. desktop/notepad/ * * copy file to output folder file list: * from "workspace_home/build-notepad-xxx-Release/release" * notepad.exe * from "qt_home/5.1.1/msvc2010/bin" * icudt51.dll * icuin51.dll * icuuc51.dll * libEGL.dll * libGLESv2.dll * Qt5Core.dll * Qt5Gui.dll * Qt5Widgets.dll * * from "qt_home/5.1.1/msvc2010/plugins/platforms" * platforms/ (need to create this sub folder in the output folder) * qwindows.dll * * * * run the .exe file, make sure it works, * * ok *
答案 6 :(得分:1)
似乎位于与应用程序相同的目录中的空 qt.conf 导致在Windows 7上启动Qt5应用程序时出现问题。尝试删除它。
答案 7 :(得分:1)
我使用了QMediaPlayer和QMediaPlaylist的实例,我的应用程序将不再启动,出现以下错误:此应用程序无法启动,因为它无法找到或加载Qt平台插件" windows"。重新安装应用程序可能会解决此问题。
在花了4天时间试图弄清楚发生了什么后,我们发现Qt5Core.dll中有一个硬编码路径来加载插件,特别是文件wmfengine.dll
。确保编译Qt5Core没有这个硬编码路径(:\ Qt \ 5.5 \ msvc2010)。
Qt5Core.dll
中的硬编码路径导致插件wmfengine.dll
无法加载