Qt程序的发布和打包exe制作安装包

1. Qt程序的发布

当Qt程序编写完成通过IDE编译就可以得到对应的可执行程序,这个可执行程序在本地运行是完全没有问题的(因为在本地有Qt环境,程序运行过程中可以加载到相关的动态库),但是如果我们想把这个Qt程序给到其他小伙伴使用可能就会出问题了,原因如下:

这个小伙伴本地根本没有Qt开发环境
这个小伙伴本地有Qt开发环境,但是和我们使用的版本不一致
这个小伙伴本地有Qt开发环境并且使用的版本与我们一致,但是没有配置环境变量
以上几种情况都会导致我们的小伙伴拿到可执行程序之后无法运行

下面来给大家讲一下解决方案。

1.1 生成Release版程序
在编写Qt程序的时候,不管我们使用的什么样的IDE都可以进行编译版本的切换,如果要发布程序需要切换为Release版本(Debug为调试版本),编译器会对生成的Release版可执行程序进行优化,生成的可执行程序会更小。这里以QtCreator为例,截图如下:

1.png

模式选择完毕之后开始构建当前项目,最后找到生成的带Release后缀的构建目录,如下图所示:


2.png

进图到release目录中,在里面就能找到我们要的可执行程序了

3.png

1.2 发布
生成的可执行程序在运行的时候需要加载相关的Qt库文件,因此需要将这些动态库一并发布给使用者,Qt官方给我们提供了相关的发布工具,通过这个工具就可以非常轻松的找出这些动态库文件了,这个工具叫做windeployqt.exe,该文件位于Qt安装目录的编译套件目录的bin目录中,操作前请确保Qt环境变量设置已设置。以我本地为例:C:\Qt\5.15.2\mingw81_64\bin

首先将生成的Release版本的可执行程序放到一个新建的空目录中:


4.png

进入到这个目录,按住键盘shift键然后鼠标右键就可以弹出一个右键菜单


5.png

打开Powershell窗口执行命令:

LordCard.exe 是可执行程序的名字
windeployqt.exe 的后缀 .exe 可以省略不写
windeployqt.exe LordCard.exe
6.png

这样LordCard.exe需要的动态库会被全部拷贝到当前的目录中,如下图:


7.png

使用这种方式Qt会将一些用不到的动态库也拷贝到当前的目录中,如果确定用不到可以手动将其删除,如果不在意这些,完全可以不用理会,我选择后者。现在一个绿色免安装版的程序就得到了,可以将这个目录打个压缩包发送给自己的小伙伴,但是这种方式终究比较low,我们可以将这个目录中的文件制作成一个安装包,这样档次一下就上去了。

2. Qt程序打包
将应用程序和相关的动态库打包成安装包的工具有很多,我自己用过两个,一个是NSIS,一个是Inno Setup。Inno Setup是一个免费的 Windows 安装程序制作软件,小巧、简便、精美。其实这两个工具的使用方法是几乎一样的,下面拿Inno Setup使用举例。

官方下载地址:http://www.jrsoftware.org/isdl.php#stable

更新:因为需要发送安装包给客户,Inno Setup 构建的安装包不太美观,无法提供满足设计和产品要求的自定义美化界面UI。团队现在改成使用 Installer Studio 这个软件来打包了,功能很强大,而且有非常多的安装模版可以使用,无需任何编码,一键就可以构建安装包。官网地址:https://installerstudio.online

0.png

第一步:创建一个带向导的脚本文件


8.png

第二步:直接 Next,不要创建空的脚本文件


9.png

第三步:填写相关的应用程序信息


10.png

第四步:指定应用程序的安装目录相关的信息


11.png

第五步:选择可执行程序和相关的动态库


12.png

基于这个目录选择相关的文件和目录:


13.png

由于可执行程序关系的动态库有很多,所以可以直接添加动态库的目录,选中对应的目录之后,如果里边还有子目录会弹出如下对话框,选择是即可,需要包含这些子目录。


14.png

第六步:给可执行程序关联本地的某种格式的磁盘文件(比如记事本程序会自动关联本地的 .txt 文件),对于我的可执行程序来说无需关联,因此没有做任何设置,直接下一步


15.png

第七步:给应用程序创建快捷方式,此处没有进行任何设置,使用的默认选项


16.png

第八步:指定许可文件,文件中的内容会显示到安装向导的相关窗口中,可以选择不指定,直接跳过。


17.png

第九步:选择安装模式(给系统的当前用户安装还是给所有用户安装),根据自己喜好指定即可


18.png

第十步:选择安装语言(这个工具没有提供中文,因此只能选择英文)


19.png

第十一步:指定安装包文件的相关信息


20.png

第十二步:向导结束,终于结束了。。。


21.png

第十三步:提示是否要编译生成的脚本文件,脚本编译完成之后,安装包就生成了。


22.png

之后弹出第二个对话框,建议通过向导生成的这个脚本文件,这样以后就可以直接基于这个脚本打包程序生成安装包了。


23.png

编译完成之后,就可以去保存脚本文件的目录找生成的安装文件了


24.png

3. 安装
双击生成的安装包文件
输入安装密码(如果已经设置)

25.png

指定安装路径


26.png

指定是否创建快捷方式


27.png

开始安装应用程序


28.png

安装完成,可以指定直接启动安装的应用程序


29.png

最后启动游戏测试下是否可以运行即可

大功告成!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容