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

时间:2018-08-30 01:07:56

标签: c++ qt dll deployment entry-point

在过去的几个月中,我使用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-Object出了点问题,但是我找不到任何东西,因为它在Qt-Creator中仍然可以完美地工作。

一个想法可能是由于编译器出现问题,所以我将其更改为mingw32,我也尝试以相同的方式进行部署。但是在这种情况下,警告消失了,但是即使windeployqt.exe应该已经执行了许多操作,仍然缺少许多dll。而且我也无法在硬盘上的任何位置找到它们。我还尝试了第三个编译器,但是问题并没有消失。

我在网上搜索,仅发现人们遇到了Qt dll中缺少入口点或总体上缺少Qt-Dlls的问题,但是没有发现与我的案子有关的任何事情。

我还在每个可执行文件上都尝试了Dependency Walker,但是它发现了更多丢失的dll,这使我相信可执行文件受到某种程度的破坏,因此我一次又一次尝试,但不幸没有成功。

有人对我有任何想法,为什么会发生或对我有任何建议吗? 也许我应该在项目中进行一些更改,即使它在IDE中工作正常。我只需要一种以任何方式部署Qt项目的方式。

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

EDIT2:我最终下载了所需的dll,以某种方式使其工作,但仍然无法正常工作。其中一个版本要求dll现在启动,但立即又自行关闭,另一个版本突然警告我缺少过程入口点。

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

1 个答案:

答案 0 :(得分:1)

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