首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么windeployqt输出的文件不是必需的,以及我如何处理它们?

为什么windeployqt输出的文件不是必需的,以及我如何处理它们?
EN

Stack Overflow用户
提问于 2017-10-13 11:51:45
回答 2查看 1.4K关注 0票数 2

我被告知了"windeployqt“实用程序,它应该能够收集正确运行我的Windows应用程序所需的所有Qt/MinGW。所以我试了一试。

不幸的是,我注意到它收集了更多的文件,然后是必要的。我比较了windeployqt实用程序收集的文件和"Dependency“报告的文件。确实需要的文件已正确收集,但下列文件也是出于某种原因收集的:

代码语言:javascript
复制
Qt5Svg.dll
iconengines\qsvgicon.dll
imageformats\qdds.dll
imageformats\qgif.dll
imageformats\qicns.dll
imageformats\qico.dll
imageformats\qjp2.dll
imageformats\qjpeg.dll
imageformats\qmng.dll
imageformats\qsvg.dll
imageformats\qtga.dll
imageformats\qtiff.dll
imageformats\qwbmp.dll
imageformats\qwebp.dll

应用程序只处理QBus并使用QWidgets显示一个简单的窗口。因此,我看不出为什么收集这些DLL。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-13 13:49:20

Dependency没有列出DLL这一事实并不意味着不需要DLL。

Dependency将只列出Windows需要加载和启动的exe所需的DLL。但是,其他DLL可能会在以后加载,而您的程序正在运行。这尤其发生在像图像格式插件这样的Qt加载插件时。

因为它无法事先知道需要什么插件,所以windeployqt部署了所有Qt插件(所有这些插件都与所需的DLL相关)。

您可以通过使用命令行修饰符(如--no-plugins )(参见windeployqt -help)来改变win部署by的行为方式。

您可以在Qt文档中查看Qt for Windows -部署,特别是关于Qt插件的部分。

票数 2
EN

Stack Overflow用户

发布于 2017-10-13 13:05:34

windeployqt实用程序将解析您的"EXE“文件并确定所使用的包,然后相应地复制所需的DLL。确保在配置/设置环境中调用该实用程序。

我以这样的方式使用这个实用程序:

  • 执行项目的发布干净生成,并记录生成路径和生成的"exe“。贪得无厌 c:\myApp\release\myApp.exe
  • 创建部署文件夹//,而不是版本构建文件夹//。例如

c:\myApp\deploy

然后从Qt命令行实用程序调用该实用程序,如下所示:

代码语言:javascript
复制
- Go to all progrmas --> Qt --> Qt command line utility 
- cd c:\myApp\deploy
- windeployqt --dir . c:\myApp\release\myApp.exe
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46729307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档