Qt部署;无法找到过程入口点....

时间:2014-01-29 08:59:20

标签: qt dll deployment

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

旧的应用程序附带

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

现在,从QtCreator我可以运行我修改过的应用程序,但在准备部署时会出现问题。我在我的.exe上使用了dependancy 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
  • Qt5Gui.dll
  • Qt5Guid.dll
  • Qt5Widgets.dll
  • Qt5Widgetsd.dll
  • QtCored4.dll

(是的,由于DLL,项目大小现在非常大,但在我的用例中这不是问题。)

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

  
    

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

  

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

如果有帮助: 在Projects->下qmake build config:Release - >我有效的qmake电话

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

如果需要更多信息以便更清楚地说明,请发表评论。

1 个答案:

答案 0 :(得分:2)

在稍微修改我的代码以根据OpenGL添加新功能后,我在Qt 5.4.2上遇到了同样的问题。我做的是使用Qt's Window's Deployment tool

  1. 创建一个文件夹并将二进制文件放入其中
  2. 使用cmd根据您拥有的二进制版本发出以下命令:
    • windeployqt --release Name_Of_Binary
    • windeployqt --debug Name_Of_Binary
  3. 根据您拥有的Qt Creator版本,您可能必须手动将lib * .dll复制到该目录。 Qt 5.4.2中不存在此错误,但早期版本中存在此错误。