部署QT5库的应用程序不启动Windows 7(Application deployed with

2019-07-17 19:54发布

最近我们一直在迁移的Windows从QT 4.8至5 QT QT我们基于应用程序,我们已经运行与部署问题。 请注意,我们的应用程序没有改变,我们只用新QT5框架构建它。 随着一些努力,我们得到了它的建立基于VS2010 QT5库; 我成功地跑从Qt Creator的应用程序。

随着我们QT4做了,我们已经包括了所需的设定与安装QT库。

在我们的测试阶段,当我们安装了我们一个干净的机器上QT5应用; 它不会启动。 不仅应用程序没有启动,但它并没有输出任何错误。

我们跑了通过依赖检查应用程序; 并没有失踪库的依赖的。

Answer 1:

之后没有进展搜索的几天里,我们偶然发现了一个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 \插件\平台我搜索无处不在,我无法找到自己的文档中的这些信息。



Answer 2:

对我来说,独立运行 “Hello World” 的GUI应用程序(Qt的SDK 5.0.1 MinGW的,Win7的X64)。 我需要添加下一个文件到程序目录:

  1. 平台/ qwindows.dll
  2. D3DCompiler_43.dll
  3. icudt49.dll
  4. icuin49.dll
  5. icuuc49.dll
  6. libEGL.dll
  7. libgcc_s_sjlj-1.DLL
  8. libGLESv2.dll
  9. 的libstdc ++ - 6.dll
  10. libwinpthread-1.DLL
  11. Qt5Core.dll
  12. Qt5Gui.dll
  13. Qt5Widgets.dll

在适用于Windows的全面部署信息QT 5.5 DOC



Answer 3:

更好的选择是使用: windeployqt.exe 。 这个工具可以解决您的application.exe的依赖关系。



Answer 4:

是的,好发现。 我在用qt 5.0.2相同的部署问题。

同样安装平台,在apps文件夹这两个DLL文件夹,在Vista和Win7的部署,现在的工作。

Dependency Walker中不帮助这里,因为它不会通知qwindows.dll或qminimal.dll为所需的DLL。

在我安装的Qt平台的DLL文件是在\的Qt \ 5.0.2 \ mingw47_32 \插件\平台。



Answer 5:

Qt的平台的dll位于 “插件” 文件夹中的 “qtbase”:C:\ QT \ 5.0.0 \ qtbase \插件\平台



Answer 6:

记事本教程,在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
* 


Answer 7:

似乎位于同一目录中应用空qt.conf导致开始在Windows 7上一个QT5应用程序尝试将其删除的麻烦。



Answer 8:

我用QMediaPlayer和QMediaPlaylist和我的应用程序的实例将不再启动,给了以下错误:此应用程序无法启动,因为它无法找到或加载了Qt平台插件“窗口”。 重新安装应用程序可能修复问题。

花4天试图弄清楚发生了什么事情后,我们发现存在Qt5Core.dll加载插件,尤其是文件中的硬编码路径wmfengine.dll 。 请确保您编译Qt5Core没有这个硬编码路径(:\ Qt的\ 5.5 \ msvc2010)。

在硬编码路径Qt5Core.dll失败的插件wmfengine.dll加载



文章来源: Application deployed with QT5 libraries does not start on Windows 7
标签: qt qt5