QT5程序打包发布
1.概述
当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行。编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装文件。
QT开发的程序发布的时候经常采用两种方式:
l 静态编译,可生成单一的可执行文件。
l 动态编译,需同时附上需要的dll文件。
2.发布准备
不管采用哪种方式,首先我们要把项目的发布做一些准备,例如:准备程序的图标,将项目编译成release等。
应用程序的图标分两种:
l 主窗口图标,主要在程序运行时显示在主窗口左上角,或在任务栏上显示。
l 运行程序图标,一般在桌面或文件夹中显示的缩略图标,可以点击后运行程序。
设置应用程序图标
使用.ico文件。
第一步,创建.ico文件。将ico图标文件复制到工程文件夹目录中,重命名为“myico.ico”。然后在该目录中右击,新建文档,修改名称为myico.rc,并输入一行代码:
IDI_ICON1 ICON DISCARDABLE "myico.ico" 。保存。
第二步,修改项目文件。在Qt Creator中的编辑模式双击.pro文件,在最后面添加下面一行代码:
RC_FILE += myico.rc
第三步,运行程序。可以看到窗口的左上角的图标已经更换了。
注意事项:
在这个地方一定要是.ico文件格式的图片,可以通过下面的网站进行图片格式转换
当然也可以通过其他方式设置图标,通过网上搜索有很多种实现方式
3.打包工具
一个是QT5自带的windeployqt(这个大家不需要下载安装),另外一个是Engima Virtual Box,这是下载链接Engima Virtual Box
4.开始打包
打开一个QT程序,以release方式运行一次
这时你的工程项目文件夹下,会生成一个关于release的文件夹:
打开release文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件(备注:如果你的电脑已经设置了QT的安装环境变量是可以的,但是,你把这个文件拷贝到其他电脑上是不能运行的)。将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下
在win10下,搜索QT,如下图:
打开,输入以下命令:
接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车后
输入如下命令行:windeployqt 程序名 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:
这时我们看程序目录如下:
此时,在当前目录下是可以点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。现在只需要将这一堆文件进行打包。
打开运行Enigma Virtual Box:
文件可以托选,选择所有文件后,直接拖入界面框内。注意是要所有文件和文件夹全部拖进。示意图如下:
在【Files Options】中可以选择是否将文件压缩
然后点击Process开始打包。
打包完成后,会生成一个EXE文件,这就是最终可以单独运行的可执行程序