部署 Qt dll 文件 - 找不到 windows 插件,尽管 platforms/qwindows.dll 存在,所以 libEGL 和 libGLES
Deploying Qt dll file - cannot find windows plugin although platforms/qwindows.dll exists and so libEGL and libGLES
我将我的应用程序构建为普通 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并将其放入具有适当程序的文件夹中。 (我正在为 Keil IDE 开发插件)。 DLL 很好看,但是当部分代码
随着 QApplication 的启动,它找不到 windows 插件。
如您所见,qwindows.dll 与 libEGL 和 libGLESv2 一样位于正确的文件夹中,但它仍然看不到 windows 插件。
我正在使用 msvc 编译器 x86 和 Qt 5.3 版本。
找到了一些解决方法 -> 我干脆放弃了 msvc 并改用 mingw。简直是搞砸了。
您需要将 qt.conf
放在您的 .exe 附近,或者放在 :qt/etc/qt.conf
的资源中
[Paths]
Prefix=.
Plugins=.
好的,我想我现在对问题的根源有了更多的了解。
我有 Keil 应用程序的文件夹和我的 dll 插件的文件夹。
Windows 检查调用的应用程序中调用的 dll 的依赖项
dll 目录在第一个,而不是在 dll 目录中。 Dll目录在较低的位置。
当然迟早 windows 应该最终到达 dll 的文件夹,但在某些机器上它没有。将依赖项从 DLL 的目录移动到应用程序的目录有帮助并且目前运行良好。感谢大家的帮助! :)
我将我的应用程序构建为普通 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并将其放入具有适当程序的文件夹中。 (我正在为 Keil IDE 开发插件)。 DLL 很好看,但是当部分代码 随着 QApplication 的启动,它找不到 windows 插件。
如您所见,qwindows.dll 与 libEGL 和 libGLESv2 一样位于正确的文件夹中,但它仍然看不到 windows 插件。
我正在使用 msvc 编译器 x86 和 Qt 5.3 版本。
找到了一些解决方法 -> 我干脆放弃了 msvc 并改用 mingw。简直是搞砸了。
您需要将 qt.conf
放在您的 .exe 附近,或者放在 :qt/etc/qt.conf
[Paths]
Prefix=.
Plugins=.
好的,我想我现在对问题的根源有了更多的了解。
我有 Keil 应用程序的文件夹和我的 dll 插件的文件夹。 Windows 检查调用的应用程序中调用的 dll 的依赖项 dll 目录在第一个,而不是在 dll 目录中。 Dll目录在较低的位置。
当然迟早 windows 应该最终到达 dll 的文件夹,但在某些机器上它没有。将依赖项从 DLL 的目录移动到应用程序的目录有帮助并且目前运行良好。感谢大家的帮助! :)