部署Qt dll文件 - 找不到windows插件,虽然平台/ qwindows.dll存在,所以libEGL和libGLES

时间:2015-04-09 02:12:31

标签: 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
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

然后我将app编译为dll并将其放入具有适当程序的文件夹中。 (我正在为Keil IDE开发插件)。 DLL看得很清楚,但代码的一部分 随着QApplication的推出,它无法找到windows插件。

因此,当您看到qwindows.dll位于正确的文件夹中时,libEGL和libGLESv2也是如此,它仍然无法看到Windows插件。

我正在使用msvc编译器x86和Qt 5.3版本。


找到了一些解决方法 - >我只是把msvc扔掉然后用mingw代替。它只是哼了一声。

2 个答案:

答案 0 :(得分:0)

您需要将qt.conf放在.exe附近,或放在:qt/etc/qt.conf

的资源中
[Paths]
Prefix=.
Plugins=.

答案 1 :(得分:0)

好吧我猜我现在知道更多的问题了。

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

当然,迟早的Windows应该最终到达dll的文件夹,但在某些机器上却没有。将DLL的目录中的依赖项移动到应用程序的目录有助于并且暂时正常运行。谢谢大家的帮助! :)