我移植了一个现有的Qt4应用程序Qt5,并为这个应用程序添加了一些额外的(简单的)功能。
旧应用程序附带
- libgcc_s_dw2_1.dll
- libusb-1.0.dll
- mingwm10.dll
- QtCore 4.dll
- QtCred4.dll
- QtGuid.dll
现在,通过QtCreator,我可以运行修改后的应用程序,但在准备部署时会出现问题。我在.exe上使用了dependency walker,并在我的可执行文件目录中包含了一个DLL。
- icudt51.dll
- icuin51.dll
- icuuc51.dll
- IEShims.dll
- libgcc_s_dw2-1.dll
- libGLESv2.dll
- libstdc++-6.dll
- libusb-1.0.dll
- libwinpthread-1.dll
- mingwm10.dll
- Qt5Core.dll
- Qt5Cored.dll
- Qt5Guid.dll
- Qt5Guid.dll
- Qt5Widgets.dll
- Qt5Widgetsd.dll
- QtCred4.dll
(是的,由于DLL的原因,项目大小现在非常大,但在我的用例中,这不是问题。)
最后,它没有抱怨缺少DLL。尝试执行.exe时发布的错误消息是:
过程入口点?testBit@QBitArray@@QBE_NH@Z无法在动态链接库Qt5Core.dll 中找到
我从未尝试过在Qt Creator之外执行Qt应用程序,所以我真的不知道该怎么办。
如果有帮助:在Projects->qmake-build-config:Release->Effective qmake call I have 下
qmake.exe D:Producttest_util.pro -r -spec win32-g++
如果需要更多的信息来让任何事情变得更清楚,请留下评论。
我在Qt 5.4.2上遇到了同样的问题,因为我稍微修改了代码,根据OpenGL添加了新的功能。我所做的是使用Qt的Window部署工具。
- 创建一个文件夹并将二进制文件放入其中
- 根据二进制文件的版本,使用cmd发出以下命令:
- windeployqt--发布名称_Of_Binary
- windeployqt—调试名称_Of_Binary
根据您拥有的Qt Creator版本,您可能需要手动将lib*.dll复制到目录中。Qt 5.4.2中不存在此错误,但早期版本中存在此错误。