Qt5部署:“找不到过程入口点”

5

我已经完成的内容:

我使用的是 Windows 10 操作系统,并编写了一款 C++ / Qt 5.11.1 / MinGW 5.3.0 应用程序。我使用发布工具包进行编译,并从 C:\Qt\5.11.1\mingw53_32\bin 运行了 windeployqt 命令。然而,它仍然缺少 libgcc_s_dw2-1.dlllibwinpthread-1.dll 文件,因此我也将它们从 C:\Qt\Tools\mingw530_32\bin 复制到应用程序目录中。

出现的错误信息:

每当我尝试启动我的应用程序时,我会遇到以下错误信息:

在 Qt5Sql.dll 中未找到 _ZdlPvj 程序入口点

在 Qt5Core.dll 中未找到 _ZNSt18condition_variable4waitERSt11unique_locklSt5mutexE 程序入口点

根据我观察到的情况,我已从文件中删除了所有的 qDebug 包含语句,并假定 windeployqt 已复制正确的 dll 文件。我已尝试使用“Dependency Walker”,但无法得到很多结果,因此我不确定该如何继续处理。


这意味着你安装的Qt二进制文件与你编译的Qt二进制文件版本不匹配。也许你的路径中存在其他版本的Qt。 - drescherjm
1
@drescherjm 我刚刚检查了一下,我的路径中根本没有Qt。顺便问一下:可执行文件目录中的DLL文件不会覆盖路径中的任何内容吗? - fallenpenguin
1
是的,它们应该。可执行文件目录中的DLL应该优先于路径中的任何内容。 - drescherjm
你确定使用了MinGW编译的Qt吗?Visual Studio二进制文件将无法使用。 - drescherjm
@drescherjm 我已经删除了我的构建文件夹,禁用了除 Qt 5.11.1 MinGW 之外的所有工具包,重新构建并重新运行了 windeployqt。不知何故,这次我只收到了第二个错误。 - fallenpenguin
@drescherjm 我找到了答案。谢谢你让我走上了正确的轨道! - fallenpenguin
1个回答

1
问题是windeployqt无法找到gcc,我用命令行添加了路径SET PATH=%PATH%;C:\Qt\Tools\mingw530_32\bin。再次运行windeployqt后,我不需要手动复制libgcc_s_dw2-1.dlllibwinpthread-1.dll,它使用了正确的Qt5Core.dll,应用程序现在可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接