Qt--项目打包

项目打包

一款正常的软件产品应该在任何的计算机中运行,不需要单独安装Qt的开发环境,因此需要把之前的项目打包成一个安装包。

1. 设置应用图标

设置应用程序图标的操作步骤如下所示。

1. 下载一个图标图片,格式要求png。(png包含透明图层),分辨率建议256*256

2. 把png格式的图片转换为ico格式的图标文件。

PNG转ICO, 在线转换器 - 转换视频, 音乐, 图像, PDF - Office-Converter.comPNG转ICO, 在线转换器 - 转换视频, 音乐, 图像, PDF - Office-Converter.com, 使用这款免费快速在线转换器. 将pdf, 图像, 视频, 文档, 音频, 电子书及压缩等文件格式转换为其他格式。现支持超过20200多种不同格式转换。https://cn.office-converter.com/png-to-ico

Convertio — 文件转换器Convertio - 在线转换文件的简单工具。支持超过309种不同的文档、图像、电子表格、电子书、文档、演示文稿、音频和视频格式。https://convertio.co/zh/

3. 把ico文件放置到项目的工作目录中。

4. 在Qt Creator中选中项目名称,鼠标右键,点击添加新文件。

5. 在弹出的窗口中,按照下图所示进行操作。

6. 在弹出的窗口中,给文件命名为 .rc格式(一定要写格式!!!)后,点击“下一步”。

7. 在项目管理界面点击“完成”。可以看到项目中多了一个.rc文件。

8. 双击进入.rc文件的编辑状态,增加下面一行配置代码:

IDI_ICON1 ICON DISCARDABLE "XXX.ico"

XXX.ico是你的exe程序图标文件名。

9. 进入.pro项目配置文件,增加下面的配置项:

RC_FILE += XXX.rc

XXX.rc是刚刚新建的rc文件名。

10. 重新编译并运行项目,观察图标设置情况。

2. Debug与Release模式

Qt项目构建有两种模式:Debug模式与Release模式。

  • Debug模式

是默认的构架模式,此模式适合开发者使用。因为生成的exe文件中包含了很多调试信息,运行速度比较慢,体积比较大。

  • Release模式

此模式适合发布给用户使用,通常不包含调试信息,但是生成的可执行文件体积小,并且编译器会做专门的优化,运行速度比Debug模式快。

无论是Debug模式还是Release模式,直接从构建目录中双击运行exe文件通常都不会正常运行,会弹出一些QMessageBox

3. 动态链接库

之所以能在Qt Creator中运行项目代码,实际上是因为Qt的开发环境中包含了Qt的源代码文件,开发者的编写程序,通过API调用了这些源代码,从而保证各种功能的正常执行。

并不是所有的计算机都会安装Qt开发环境,因此把Qt源代码封装为.dll动态动态链接库文件,跟随exe文件一并打包即可使exe文件正常文件。

需要注意的是,只有Release模式下编译生成的exe文件才支持dll格式。

只需要把exe文件与dll文件放置到同一个目录中即可,在这种发布的结构下,这个目录被称为软件的根目录,充当了开发过程的工作目录与构建目录的角色,这代表了根目录中要包含图片文件、qrc文件、.db文件等。

补充dll的方法有两种:

  • 使用老师基于当前Qt版本提取的常用的dll文件

这种方法操作简单,但是体积比较大,因为有一些dll项目用不到。

  • 使用Qt自带的windeployqt工具提取exe所需的dll文件

操作步骤如下:

1. 点击Win图标,进入所有应用,找到Qt下面的

2. 在黑窗口(命令行)中定位到exe文件所在的位置。

dir                    显示当前目录的内容
cd 文件夹名称            进入当前目录的子文件夹
cd..                  进入当前目录的上一级
盘符                    切换磁盘

3. 定位到exe所在目录后,执行下面的命令。

windeployqt 程序名称.exe

4. 再次尝试运行exe文件还是无法运行,此时需要手动“缺啥补啥”。注意计算机同文件名的dll动态链接库文件大小可能不同,请擦亮眼睛!

5.补全文件后点击.exe文件即可运行。

4.程序打包

程序打包工具不是Qt的内容,市面上有很多类似的软件。

打包教程可以参考:

QT 程序使用iSetup打包成setup安装包_isetup的使用_小五呀~的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/m0_68672255/article/details/130640779
今日推荐