C++ Qt应用程序部署不需要';不行。缺少入口点和dll';s

C++ Qt应用程序部署不需要';不行。缺少入口点和dll';s,c++,qt,dll,deployment,entry-point,C++,Qt,Dll,Deployment,Entry Point,在过去的几个月里,我用QtCreator版本4.7.0、QtVersion5.11.1(开源版本)创建了一个项目 现在,我尝试按照以下步骤部署它,并使用MSVC2017-64位编译器构建项目,然后在生成的可执行文件上运行windeployqt.exe 当我试图在程序将必要的DLL复制到文件夹后运行可执行文件时,出现了一条警告: 进入点? eventFilter@QAbstractItemView@@在DLL“my/project/path/releasefolder/project.exe”中找

在过去的几个月里,我用QtCreator版本4.7.0、QtVersion5.11.1(开源版本)创建了一个项目

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

当我试图在程序将必要的DLL复制到文件夹后运行可执行文件时,出现了一条警告:

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

在我看来,我在项目中使用的Qt对象似乎有问题,但我找不到任何东西,因为它在Qt Creator中仍然完美地工作

有人认为这可能是因为编译器有问题,所以我将其更改为mingw32,并尝试以相同的方式部署它。但不知何故,在本例中,警告消失了,但许多DLL仍然丢失,即使windeployqt.exe应该已经这样做了。我在硬盘上也找不到它们。我还尝试了第三个编译器,但问题并没有消失

我在网上搜索,只发现人们在Qt dll中缺少一个入口点,或者总体上缺少Qt dll,但没有发现任何与我的案例相关的问题

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

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

编辑:使用Qt Creator中带有MSVC2017的桌面工具包进行构建,出现所述警告。 使用Mingw32(桌面工具包)和MSVC2017(使用Qt Creator中的UWP工具包)构建时,以下Dll丢失,我在硬盘上找不到:MSVCP140_APP.Dll

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


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

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

在硬盘中找不到它们。。但你的应用程序仍然在Creator中运行!请列出一些可以在Creator中运行的dllIf,这意味着您在部署中丢失了一些文件。windeployqt确实很糟糕,就我而言,在能够独立运行之前,我必须向文件夹中添加3个DLL。谢谢,首先我尝试创建一个新项目,并将所有文件从旧项目复制到新项目。然后我根据你的建议将每个dll复制到文件夹中,并删除那些未使用的dll。我不知道到底是什么解决了这个问题,但结果很好。