Qt部署;过程入口点...找不到 [英] Qt deployment; the procedure entry point ... could not be located

查看:223
本文介绍了Qt部署;过程入口点...找不到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经移植了一个现有的Qt4应用程序Qt5,并为此应用程序添加了一些额外的(简单的)功能。

I have ported an existing Qt4 application Qt5 and added some extra (simple) functionality to this application.

旧应用程序随附


  • libgcc_s_dw2_1.dll

  • libusb-1.0.dll

  • mingwm10.dll

  • QtCore4.dll

  • QtCored4.dll

  • QtGui.dll

  • libgcc_s_dw2_1.dll
  • libusb-1.0.dll
  • mingwm10.dll
  • QtCore4.dll
  • QtCored4.dll
  • QtGui.dll

现在,从QtCreator我可以运行我的修改的应用程序,但是在准备部署时会出现问题。我在.exe上使用了依赖行者,并且在我的可执行文件目录中包含了DLL的负载。

Now, from QtCreator I am able to run my modified application, but problems occur when preparing deployment. I have used dependancy walker on my .exe and included a load of DLL's in my executables directory.


  • 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

  • Qt5Gui。 dll

  • Qt5Guid.dll

  • Qt5Widgets.dll

  • Qt5Widgetsd.dll

  • QtCored4.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
  • Qt5Gui.dll
  • Qt5Guid.dll
  • Qt5Widgets.dll
  • Qt5Widgetsd.dll
  • QtCored4.dll

(是的,由于DLL的存在,项目大小现在非常大,但在我的用例中

(Yes, the project size is now extremely large due to the DLL's, but in my use case this is not an issue.)

最后,它并没有抱怨缺少DLL。尝试执行.exe时发布的错误消息是:

And finally it didn't complain about missing DLL's. The error message posted when trying to execute the .exe is:



过程入口点?testBit @ QBitArray @@ QBE_NH @ Z找不到动态链接库Qt5Core.dll

The procedure entry point ?testBit@QBitArray@@QBE_NH@Z could not be located in the dynamic link library Qt5Core.dll


从来没有尝试过在Qt Creator外部执行Qt应用程序,所以我真的不知道该怎么做。

I have never tried executing a Qt application outside Qt Creator, so I have really no idea what to do.

如果有帮助,请执行以下操作:
在Projects-> qmake build config中:Release->有效的qmake调用

If it helps: Under Projects-> qmake build config : Release -> Effective qmake call I have

qmake.exe D:\Product\test_util.pro -r -spec win32-g++

如果需要更多信息以使内容更清楚,请对此发表评论。

If any more information is required to make anything more clear, please leave a comment about it.

推荐答案

我在Qt 5.4.2上遇到了相同的问题,在对我的代码进行了少许修改以根据OpenGL添加新功能之后。我所做的是使用 Qt窗口的部署工具

I had the same problem on Qt 5.4.2 after slightly modifying my code to add new functionality depending on OpenGL. What I did was use Qt's Window's Deployment tool.


  1. 创建一个文件夹并将二进制文件放入其中

  2. 使用cmd发出以下命令,具体取决于您具有哪个版本的二进制文件:


    • windeployqt --release Name_Of_Binary

    • windeployqt --debug Name_Of_Binary

根据您使用的Qt Creator版本,您可能必须手动复制lib * .dll到目录。此错误在Qt 5.4.2中不存在,但在较早版本中已存在。

Depending on which version of Qt Creator you have, you might have to manually copy the lib*.dll's to the directory. This bug is not present in Qt 5.4.2 but was present in earlier versions.

这篇关于Qt部署;过程入口点...找不到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆