C++ 部署Qt dll文件-尽管存在platforms/qwindows.dll,所以libEGL和libGLES,但找不到windows插件

C++ 部署Qt dll文件-尽管存在platforms/qwindows.dll,所以libEGL和libGLES,但找不到windows插件,c++,qt,dll,plugins,keil,C++,Qt,Dll,Plugins,Keil,我将我的应用程序构建为普通exe,并在其上运行windeployqt。我在带有exe的文件夹中得到了一长串文件 files: ./ D3Dcompiler_47.dll Qt5Core.dll Qt5Gui.dll Qt5Svg.dll Qt5Widgets.dll WLedPlugin.exe accessible files.txt iconengines icudt52.dll icuin52.dll icuuc52.dll imageformats libEGL.dll libGLESv

我将我的应用程序构建为普通exe,并在其上运行windeployqt。我在带有exe的文件夹中得到了一长串文件

files:
./
D3Dcompiler_47.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Svg.dll
Qt5Widgets.dll
WLedPlugin.exe
accessible
files.txt
iconengines
icudt52.dll
icuin52.dll
icuuc52.dll
imageformats
libEGL.dll
libGLESv2.dll
platforms
qt_cs.qm
qt_de.qm
qt_fi.qm
qt_hu.qm
qt_it.qm
qt_ja.qm
qt_ru.qm
qt_sk.qm
qt_uk.qm

./accessible:
qtaccessiblewidgets.dll

./iconengines:
qsvgicon.dll

./imageformats:
qdds.dll
qgif.dll
qicns.dll
qico.dll
qjp2.dll
qjpeg.dll
qmng.dll
qsvg.dll
qtga.dll
qtiff.dll
qwbmp.dll
qwebp.dll

./platforms:
qwindows.dll
然后我将应用程序编译成dll,并用适当的程序将其放入文件夹中。我正在为KeilIDE开发插件。DLL很好地被看到,但是当代码的一部分 QApplication启动后,它就找不到windows插件了

所以,正如您所看到的,qwindows.dll位于适当的文件夹中,因为libEGL和libGLESv2也位于适当的文件夹中,它仍然无法看到windows插件

我正在使用msvc编译器x86和Qt5.3版本

一些变通方法发现->我只是简单地将msvc扔掉,改用mingw。它只是写道。

您需要将qt.conf放在.exe附近,或者放在参考资料中:qt/etc/qt.conf


好吧,我想现在我知道更多了,问题出在哪里

我有一个带Keil应用程序的文件夹和一个带dll插件的文件夹。 Windows在调用dll的应用程序中检查调用dll的依赖项 首先是dll目录,而不是dll目录。Dll目录位于较低的位置


当然,windows迟早会到达dll的文件夹,但在某些机器上却没有。将依赖项从DLL的目录移动到应用程序的目录有帮助,目前运行良好。谢谢大家的帮助!:

您应该阅读有关部署Qt应用程序的官方文档:。你忘了添加./platforms/qwindows.dllNo我没有。qwindows.dll位于./platforms文件夹中,如上面的清单所示,请阅读以下内容:。我不提供答案,因为有很多方法,如何部署:。例如,我们正在使用cmake创建qt.conf文件,作为构建步骤。我们有4种不同的配置,用于在win+os x上调试和部署。欢迎使用heelp。如果我成功了,我会发布解决方案。thanks@SaZ->这不是毫无意义的。我还尝试用qApp->addLibraryPath和参数QDir::currentDirectory以及qApp->applicationDirPath对其进行硬编码,但仍然一无所获。我不知道这是否真的很重要,但QApplication在单独的线程中,当然它是整个应用程序中唯一的QApplication。我还用argc和argv值欺骗了QApplication。我也不知道这是否重要,但我不是部署*.exe而是部署*.dll文件。您能创建一个示例吗。带有QApplication+modules+qt.conf的dll。我试着看看。你说的创建一个样本是什么意思?您想要源代码还是二进制文件?对不起,我只是不明白:谢谢你的帮助:对不起,我花了这么长时间。下面是代码,依赖项已发布,qt.conf为:[path]Prefix=。插件=。现在,它更像是在我的机器上工作,但其他机器则不然。将编译器更改为MingW4.8.2之后,情况就是这样。错误消息与我使用msvc编译器时的错误消息相同。不知道出了什么问题。QApplication在文件控制器->源->guistart.cpp中。对不起,我忘了
[Paths]
Prefix=.
Plugins=.