gpt4 book ai didi

c++ - Qt 应用程序部署不起作用。缺少入口点和 dll

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:05 26 4
gpt4 key购买 nike

最近几个月我用Qt-Creator 4.7.0版,Qt 5.11.1版(开源版)创建了一个项目。

现在我尝试按照 Qt doc 部署它并使用 MSVC2017-64 位编译器构建项目,然后在生成的可执行文件上运行 windeployqt.exe。

当我在程序完成将必要的 dll 复制到文件夹后尝试运行可执行文件时,出现警告:

入口点?在 DLL“my/project/path/releasefolder/project.exe”中找不到 eventFilter@QAbstractItemView@@MEAA_NPEAVQObject@@PEAVQEvent@@@Z。

在我看来,我在项目中使用的 Qt-Objects 似乎有问题,但我找不到任何问题,因为它在 Qt-Creator 中仍然可以完美运行。

A以为可能是编译器有问题,所以改成了mingw32,我也尝试用同样的方式部署。但不知何故,在这种情况下警告消失了,但许多 dll 仍然丢失,即使 windeployqt.exe 应该已经这样做了。而且我也无法在我的硬盘上的任何地方找到它们。我还尝试了第三个编译器,但问题并没有消失。

我在网上搜索,只发现有人遇到 Qt dll 中缺少入口点或一般缺少 Qt-Dll 的问题,但没有找到与我的案例相关的任何内容。

我还在每个可执行文件上尝试了 Dependency Walker,但它发现了更多丢失的 dll,这让我相信可执行文件不知何故被破坏了,所以我一次又一次地尝试,但不幸的是没有成功。

有人知道为什么会发生这种情况,或者对我有什么建议吗?也许我应该改变我的项目中的某些东西,即使它在 IDE 中运行良好。我只需要一种以任何方式部署我的 Qt 项目的方法。

编辑:使用带有 MSVC2017 的 Qt Creator 中的桌面工具包进行构建,出现了所描述的警告。使用 Mingw32(桌面工具包)和 MSVC2017 使用 Qt Creator 中的 UWP 工具包构建,缺少以下 Dll,我在硬盘驱动器上的任何地方都找不到:MSVCP140_APP.dll

EDIT2:我最终下载了所需的 dll,以某种方式让它工作,但它仍然没有工作。一个构建要求 dll 现在启动但立即再次自行关闭,另一个构建突然警告我缺少过程入口点。

编辑 [解决方案]:我让 Qt Creator 创建一个全新的项目,并将旧项目中的所有文件复制到新项目中。之后,我只将所有 dll 文件复制到该文件夹​​中,它就可以工作了。

最佳答案

不依赖windeploy,手动添加dll。我假设您已经使用 mingw 构建了项目。假设您使用的是 Qt 5.11.1,请转到C:\Qt\Qt5.11.1\5.11.1\\bin\复制所有dll文件并粘贴到你的可执行文件夹中。还要从插件文件夹(在/plugins 中)复制所有目录并粘贴到您的文件夹中。现在运行应用程序,不要关闭应用程序。现在从可执行文件夹中删除所有文件。不用的删掉,剩下的留着。我假设您是在目标计算机上执行此操作。这可能会有所帮助。

关于c++ - Qt 应用程序部署不起作用。缺少入口点和 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52087944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com