【Qt问题】windeployqt如何提取Qt依赖库

往期回顾

【Qt问题】Qt Creator 如何链接第三方库-CSDN博客

【Qt问题】Qt 如何带参数启动外部进程-CSDN博客

【Qt问题】VS2019 Qt win32项目如何添加x64编译方式-CSDN博客

【Qt问题】windeployqt如何提取Qt依赖库

考虑这个问题主要是:当我们的程序运行好之后,拿给别人用的时候,需要提取一些Qt的依赖库,此时如果靠自己去手动复制这些dll,很可能出错,所以qt官方给了一个工具帮我们做这个事情。

具体实现步骤如下:

1、先选择Release运行项目

先运行项目,注意此时不用再以Debug编译运行,而是选择Release

补充:debug和release版本编译运行的不同

|-----------|-----------------------------------|----------------------------------------------|
| | Release版本 | Debug版本 |
| 性能差异: | Release版本通常会进行优化,以提高程序的性能和运行速度。 | 相比之下,Debug版本通常包含更多的调试信息,可能会牺牲一些性能以便于调试和跟踪问题。 |
| 编译标志: | Debug版本通常会包含调试信息、关闭优化等设置, | 而Release版本则会启用优化和去除调试信息。 |
| 输出文件: | Debug版本的输出文件通常包含调试信息 | 而Release版本的输出文件则会进行优化以提高性能。 |
| 运行行为: | Debug版本包含更多的调试信息,可能会占用更多的内存和磁盘空间。 | Release版本则更适合最终部署和发布,因为它们通常具有更好的性能和较小的体积 |

一般来说:

Debug版本适用于开发和测试阶段,能够提供更多的调试信息和便于定位问题;而Release版本适用于性能优化、部署和发布阶段,能够提供更好的性能和用户体验。

2、查看生成的release文件

此时项目目录下会生成一个release文件夹,build-10_1_QProcess-Qt_5_15_2_msvc2019-Release

打开运行后生成的release文件夹,此时里面会有一个exe程序,此时运行估计是会报错的,

我这里双击直接运行成功是因为我之前已经打包过了:

3、添加系统变量

找到windeployqt.exe路径,添加到系统变量,一般是在版本的bin目录下。

4、单独存放生成的exe程序

回到release文件夹,把生成的exe程序拿出来,单独放到一个文件夹里

然后在该文件夹运行cmd,输入命令:windeployqt 项目名

我这里是:windeployqt 10_1_QProcess.exe

运行windeployqt可能遇到如下警告

Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set

解决办法:

新建环境变量:VCINSTALLDIR

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC

此时就会发现文件夹里生成了我们需要的一堆依赖文件

5、验证是否打包成功

最后,把这个文件夹发给别人,如果他们电脑上没有qt环境,也可以运行,说明打包成功。


有用的打包知识又增加了~

相关推荐
可峰科技9 分钟前
斗破QT编程入门系列之二:认识Qt:编写一个HelloWorld程序(四星斗师)
开发语言·qt
全栈开发圈13 分钟前
新书速览|Java网络爬虫精解与实践
java·开发语言·爬虫
面试鸭18 分钟前
离谱!买个人信息买到网安公司头上???
java·开发语言·职场和发展
小白学大数据18 分钟前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
Python大数据分析@22 分钟前
python操作CSV和excel,如何来做?
开发语言·python·excel
上海_彭彭1 小时前
【提效工具开发】Python功能模块执行和 SQL 执行 需求整理
开发语言·python·sql·测试工具·element
334554321 小时前
element动态表头合并表格
开发语言·javascript·ecmascript
沈询-阿里1 小时前
java-智能识别车牌号_基于spring ai和开源国产大模型_qwen vl
java·开发语言
残月只会敲键盘1 小时前
面相小白的php反序列化漏洞原理剖析
开发语言·php
ac-er88881 小时前
PHP弱类型安全问题
开发语言·安全·php