QT可执行程序打包成安装程序

目录

1.将QT程序先放到一个文件中

2.下载QtInstallerFramework-win-x86.exe

3.将setup.exe单独拷贝出来,进行安装测试

4.测试安装后的程序是否可执行


1.将QT程序先放到一个文件中

(1)QT切换到release模式,编译后在构建目录生成可执行文件,例如myqml.exe,把该文件复制到一个单独文件夹;

a.QT切换到release模式,进行编译;

b.进入生成myqml.exe的目录,将myqml单独拷贝出来

c.在C:\Qt\Qt5.12.3\5.12.3\mingw73_64下创建MYQML文件件并将上一步的myqml.exe拷贝到C:\Qt\Qt5.12.3\5.12.3\mingw73_64\MYQML下

(2)在开始菜单找到QT,在里面找cmd命令行程序,类似"Qt 5.12.3 (MinGW 7.3.0 64-bit)",点击运行;

(3)命令行输入:cd "myqq.exe所在路径",例如"cd MYQML",执行;

(4)然后使用 windeployqt 工具命令:windeployqt myqml.exe,执行即可把依赖库复制到当前目录。生成如下:

此时可以看到在MYQML下已经将依赖的库添加进来:

(5) 进入到C:\Qt\Qt5.12.3\5.12.3\mingw73_64\MYQML下,双击执行myqml.exe,确认myqml.exe是否依赖库全部添加进来,既是否可执行,如果不可执行,会提示哪些依赖的库没有添加进来:

由上图可知,还有很多依赖库未添加进来,通过搜索工具,在电脑下搜索对应的依赖库,并添加进来;

再次双击执行myqml.exe,其可执行了:

2.下载QtInstallerFramework-win-x86.exe

(1)通过如下路径下载QtInstallerFramework-win-x86.exe

Index of /official_releases/qt-installer-frameworkhttps://download.qt.io/official_releases/qt-installer-framework/

(2)安装QtInstallerFramework-win-x86.exe

3、配置

QtInstallerFramework-win-x86.exe安装在C:\Qt\QtIFW-4.6.1,安装目录下有这个目录examples\tutorial,这是个例子

主要配置./config/config.xml 和 ./packages/com.vendor.product/meta/installscript.qs

然后将C:\Qt\Qt5.12.3\5.12.3\mingw73_64\MYQML文件夹里的所有东西全部复制到./packages/com.vendor.product/data目录下,包含第三方的链接库

4、使用如下命令制作安装包

C:\Qt\QtIFW-4.6.1\bin\binarycreator.exe -f -c C:\Qt\QtIFW-4.6.1\examples\tutorial\config\config.xml -p C:\Qt\QtIFW-4.6.1\examples\tutorial\packages setup.exe

执行后会花一些时间对myqml.exe和依赖的库进行打包生成安装程序setup.exe

安装程序setup.exe在 C:\Qt\Qt5.12.3\5.12.3\mingw73_64\MYQML下

3.将setup.exe单独拷贝出来,进行安装测试

(1)setup.exe将其拷贝到桌面

(2)双击执行安装,出现如下画面

(3)选择安装路径,一步步默认选择进行安装

(4)为安装软件起名称:

(5)继续安装,安装过程中会有一些依赖库被杀毒软件认为不可信,自己点击信任,继续,如下显示安装完毕

4.测试安装后的程序是否可执行

(1)安装路径:

(2)双击可执行程序:

(3)程序执行成功

相关推荐
阿方索17 分钟前
python文件与数据格式化
开发语言·python
weixin_440730502 小时前
java结构语句学习
java·开发语言·学习
JIngJaneIL2 小时前
基于java+ vue医院管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
量子联盟2 小时前
功能完整的PHP站点导航管理系统php程序;开源免费下载
开发语言·php
仙俊红2 小时前
在 Java 中,`==` 和 `equals()` 的区别
java·开发语言·jvm
JIngJaneIL2 小时前
基于java + vue校园跑腿便利平台系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
happybasic2 小时前
python字典中字段重复性的分析~~
开发语言·python
czlczl200209253 小时前
SpringBoot自动配置AutoConfiguration原理与实践
开发语言·spring boot·后端
张较瘦_3 小时前
JavaScript | 数组方法实战教程:push()、forEach()、filter()、sort()
开发语言·javascript·ecmascript
Filotimo_3 小时前
EntityGraph的概念
java·开发语言·数据库·oracle