【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环境,也可以运行,说明打包成功。


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

相关推荐
ankleless9 分钟前
Python 数据可视化:Matplotlib 与 Seaborn 实战
开发语言·python
Gavin_91523 分钟前
一文速通Ruby语法
开发语言·ruby
搞一搞汽车电子34 分钟前
vs studio 2017项目不支持studio vs2022
开发语言
witkey_ak98961 小时前
python 可迭代对象相关知识点
开发语言·python
呼啦啦啦啦啦啦啦啦1 小时前
synchronized锁,ReentrantLock 锁
开发语言·
听风的码2 小时前
Vue2封装Axios
开发语言·前端·javascript·vue.js
素界UI设计3 小时前
建筑行业变革:用Three.js构建BIM数据可视化孪生平台
开发语言·javascript·信息可视化
王廷胡_白嫖帝4 小时前
Qt个人通讯录项目开发教程 - 从零开始构建联系人管理系统
开发语言·qt
戏言zare4 小时前
Qt设置软件使用期限【新版防修改系统时间】
qt
疯狂的代M夫4 小时前
C++对象的内存布局
开发语言·c++