This application failed to start because it cloud not find or load the Qt platform plugin “windows”
in “”.
Reinstalling the application may fix this problem.
解决办法如下:
使用 Qt 的工具生成环境
官方文档原文链接:http://doc.qt.io/qt-5/windows-deployment.html
这里的采纳答案即是正解
原文如下:
WHY THE PROBLEM OCCURRED
Honestly, I don’t know. But it very much seems like “Alexander Saprykin” answer is correct. During the process of testing, i had to update my Qt so it could fairly well be only a version mismatch.
Also, the fact that when I redid my build using only Qt 5.7.0 it worked, implies that it was indeed only a mismatch case.
HOW I FIXED IT
As told by “Sebastian Lange” in the comments, using windeplyqt.exe
did the job. I just deleted everything but the .exe
in my build folder, opened Qt5.7 command line, chaged directory to the same as my .exe
and ran the command windeployqt .
or windeployqt [name_of_exe].exe
Qt原文翻译如下: 来自Google翻译
Windows部署工具
Windows部署工具旨在自动化创建可部署文件夹的过程,该文件夹包含从该文件夹运行应用程序所需的Qt相关依赖项(库,QML导入,插件和转换)。它为Windows运行系统或Windows桌面应用程序的安装树创建一个沙盒,可以轻松地捆绑到安装包中。
该工具可以在QTDIR / bin / windeployqt中找到。它需要一个.exe文件或包含.exe文件作为参数的目录,并扫描可执行文件以获取依赖关系。如果使用–qmldir参数传递目录,windeployqt将使用qmlimportscanner工具扫描目录中QML导入依赖关系的QML文件。然后将标识的依赖项复制到可执行文件的目录中。 Qt5Core.dll中的硬编码本地路径进一步被替换为相对的路径。
对于Windows桌面应用程序,编译器所需的运行时文件也会默认复制到可部署文件夹(除非指定了–no-compiler-runtime选项)。在使用Microsoft Visual C ++发布版本的情况下,这些包含Visual C ++可再分发软件包,用于由目标机器上的应用程序的安装程序进行递归安装。否则,将使用编译器运行时的共享库。
该应用程序可能需要额外的第三方库(例如数据库库),这些库不会被windeployqt考虑在内。
大致是这样。
将 windeployqt.exe 与 你的 Qt文件放在同一个目录,只要这两个文件。
要用Qt安装的这个命令工具才有用。
然后运行命令:这里name_of_exe你得知道是你的Qt生成的exe文件的名字
windeployqt.exe [name_of_exe].exe
然后就生成一大堆文件,文件夹。
最后把你的其他非Qt的依赖库加进来,完毕~