C++ Qt应用程序部署

C++ Qt应用程序部署,c++,qt,C++,Qt,使用Qt部署应用程序需要哪些dll文件?我所说的“必需”是指所有应用程序(而不是整个dll文件夹)所共有的应用程序。msvr120.dll和msvc120.dll是否也必需?感谢进一步的回答。在这种情况下,她是你最好的朋友。 简而言之,这取决于您在项目中使用了多少Qt模块 检查项目文件,例如: QT += core gui script 那你就需要 QtCore4.dll/Qt5Core.dll(用于调试的QtCored4.dll/Qt5Cored.dll) QtGui4.dll/

使用Qt部署应用程序需要哪些dll文件?我所说的“必需”是指所有应用程序(而不是整个dll文件夹)所共有的应用程序。msvr120.dll和msvc120.dll是否也必需?感谢进一步的回答。

在这种情况下,她是你最好的朋友。 简而言之,这取决于您在项目中使用了多少Qt模块

检查项目文件,例如:

QT       += core gui script
那你就需要

QtCore4.dll/Qt5Core.dll(用于调试的QtCored4.dll/Qt5Cored.dll)
QtGui4.dll/Qt5Gui.dll
QtScript4.dll/Qt5Script.dll

可在Qt目录下的bin文件夹中找到



至于msvr120.dllmsvc120.dll。如果用户的Windows系统没有这些DLL,您也可以分发它们(例如,旧版本的Windows XP,但我不确定这些DLL是否在旧版本的Windows中工作)

Windows Qt安装包括
windeployqt.exe
部署帮助程序,它将复制
Qt
(如果您使用它,
MinGW
)库
.dll
s。检查您的Qt安装目录,它与
qmake.exe

cmd
中的基本用法:(将发布版本的
--debug
替换为
--release

除了必需的
.dll
文件外,它还将为所有内容提供可选插件、翻译文件和配置文件。您可以稍后删除不需要的文件和
upx
其余文件

这里的附加信息:(感谢peppe的链接)<代码>windeployqt.exe位于页面底部


注意:它不能部署
MSVC
运行库。您需要一个可重新分发的DLL,这样您就可以在安装程序中以静默方式安装它们。

这取决于您使用的Qt模块。必要的DLL是您链接应用程序的DLL。您应该将它们与您的可执行文件一起分发,因为您不能期望任何人安装Qt DLL。关于Windows部署的内容非常全面。这只是故事的一部分。然后您需要平台插件,可能需要其他Qt插件(图像、数据库等),可能需要MSVC运行时,可能需要ANGLE libs(因此也需要d3d libs),等等。@peppe Yeah。我只是提出一个一般情况。在任何情况下,使用Dependency Walker都是最可靠的方法。@Tay2510不幸的是,这不是一个通用的解决方案(不仅仅是因为dependens.exe很旧而且有缺陷)。它不会显示所有Qt依赖项。无论出于什么原因,插件中都有很多功能,即使它们看起来像普通DLL,它们也不是,并且不会出现在exe的导入中,因此,Dependes没有机会看到它们。@TamásSzelei当您指定评测
.exe
时,它可以看到插件。它将查找
LoadLibrary
调用和延迟加载,并显示它们。请检查我的PowerShell脚本以自动执行搜索:
QtXCore.dll
与Qt 4中的文件名不匹配。例如,我们在那里有
QtCore4.dll
QtGui4.dll
windeployqt.exe
听起来不错。Qt5是唯一的吗?@Tay2510它是与android部署器一起添加的
mkdir Deploy
copy /y /path/to/exe Deploy
cd Deploy 
windeployqt.exe --debug Prog.exe