我一直在谷歌上搜索这个问题的解决方案,虽然我发现很多人都在分享我的问题但他们的解决方案都不适合我。
我使用Visual Studio 2010使用Qt框架编写了一个C ++应用程序。我在Visual Studio中以“发布”模式构建并运行应用程序而没有问题,但是当我将该文件夹中的exe文件复制到新目的地时(假装它新的PC)它无法运行提供此错误:
---------------------------
TestApplication
---------------------------
This application failed to start because it could not find or load the Qt platform plugin "windows".
Available platform plugins are: windows.
Reinstalling the application may fix this problem.
在可执行文件目录中,我有以下文件结构:
./TestApplication.exe
./libGLESv2.dll
./Qt5Core.dll
./Qt5Gui.dll
./QtWidgets.dll
./platforms/qwindows.dll
./qt.conf
所有dll文件都取自Qt的5.0.0版本,该文件夹位于库所在的Qtbase文件夹中。
qt.conf文件是:
[Paths]
Plugins=.
没有它,启动错误是相同的,除了它说“minimal”和“offscreen”也是可用的平台。
对于遇到此错误的所有其他人,似乎可以通过创建platforms
文件夹并输入qwindows.dll来解决。但自己这样做并不会改变任何行为。
我做错了吗?也许我首先生成.exe的方法是错误的?
答案 0 :(得分:9)
如果您使用的是libGLESv2.dll,那么您也必须包含libEGL.dll。 您无法在depends.exe中看到,不知道Qt开发人员是如何设法隐藏它的。 如果您的Qt是开箱即用的,那么即使您不使用OpenGL,也需要两个Dll。
此外,如果你的Qt是开箱即用的,你还需要包含三个ic * .dll,其中包含Unicode处理的信息。
答案 1 :(得分:2)
通过查看在Qt Creator中运行Debug(F5)时调用的DLL,可以看到需要哪些DLL。 =卡尔
答案 2 :(得分:0)
该版本可能缺少库/插件,或者库位于错误的目录和/或来自错误的目录。
Qt预期答案:使用windeployqt。
Qt带有平台控制台应用程序,该应用程序会将所有依赖项(包括qwindows.dll和libEGL.dll之类)添加到已部署的可执行文件的文件夹中。这是部署应用程序的预期方式,因此您不会错过任何库(这是所有这些答案的主要问题)。 Windows的应用程序称为windeployqt。每个操作系统可能都有一个部署控制台应用程序。