最近我们一直在迁移的Windows从QT 4.8至5 QT QT我们基于应用程序,我们已经运行与部署问题。 请注意,我们的应用程序没有改变,我们只用新QT5框架构建它。 随着一些努力,我们得到了它的建立基于VS2010 QT5库; 我成功地跑从Qt Creator的应用程序。
随着我们QT4做了,我们已经包括了所需的设定与安装QT库。
在我们的测试阶段,当我们安装了我们一个干净的机器上QT5应用; 它不会启动。 不仅应用程序没有启动,但它并没有输出任何错误。
我们跑了通过依赖检查应用程序; 并没有失踪库的依赖的。
之后没有进展搜索的几天里,我们偶然发现了一个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 \插件\平台我搜索无处不在,我无法找到自己的文档中的这些信息。
对我来说,独立运行 “Hello World” 的GUI应用程序(Qt的SDK 5.0.1 MinGW的,Win7的X64)。 我需要添加下一个文件到程序目录:
- 平台/ qwindows.dll
- D3DCompiler_43.dll
- icudt49.dll
- icuin49.dll
- icuuc49.dll
- libEGL.dll
- libgcc_s_sjlj-1.DLL
- libGLESv2.dll
- 的libstdc ++ - 6.dll
- libwinpthread-1.DLL
- Qt5Core.dll
- Qt5Gui.dll
- Qt5Widgets.dll
在适用于Windows的全面部署信息QT 5.5 DOC
更好的选择是使用: windeployqt.exe 。 这个工具可以解决您的application.exe的依赖关系。
是的,好发现。 我在用qt 5.0.2相同的部署问题。
同样安装平台,在apps文件夹这两个DLL文件夹,在Vista和Win7的部署,现在的工作。
Dependency Walker中不帮助这里,因为它不会通知qwindows.dll或qminimal.dll为所需的DLL。
在我安装的Qt平台的DLL文件是在\的Qt \ 5.0.2 \ mingw47_32 \插件\平台。
Qt的平台的dll位于 “插件” 文件夹中的 “qtbase”:C:\ QT \ 5.0.0 \ qtbase \插件\平台
记事本教程,在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
*
似乎位于同一目录中应用空qt.conf导致开始在Windows 7上一个QT5应用程序尝试将其删除的麻烦。
我用QMediaPlayer和QMediaPlaylist和我的应用程序的实例将不再启动,给了以下错误:此应用程序无法启动,因为它无法找到或加载了Qt平台插件“窗口”。 重新安装应用程序可能修复问题。
花4天试图弄清楚发生了什么事情后,我们发现存在Qt5Core.dll加载插件,尤其是文件中的硬编码路径wmfengine.dll
。 请确保您编译Qt5Core没有这个硬编码路径(:\ Qt的\ 5.5 \ msvc2010)。
在硬编码路径Qt5Core.dll
失败的插件wmfengine.dll
加载