当前位置: 首页 > article >正文

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包
目录

一、简述

Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以发布了。

二、设置应用程序图标

我们编译好生成的 exe 文件的图标是 Qt 自带的一个白色的框框,不太好看,怎么能够自己设置程序的图标呢。先创建一个 ico 格式的文件,网上有很多在线就可以把 png 或 jpg 的图片转成 ico 格式的图标文件,然后把 ico 文件放到源代码目录下,就是 .pro 文件的同一文件夹下
在这里插入图片描述
在.pro项目文件中添加:

RC_ICONS = car.ico // 这里的car.ico是我的ico文件的名字,改成你自己的ico文件名

添加完后一定要重新 qmake 一遍,然后再运行一遍你的程序,这样再看你的 debug 或者 release 文件夹下的 exe 文件就会有你设置好的图标了。
在这里插入图片描述

三、发布程序

发布程序首先要获得所依赖的 dll 文件,这里有两种方法。方法一就是去 Qt 安装目录的 bin 目录(笔者这里是F:\technology\Qt5.9.7\5.9.7\mingw53_32)中找所依赖的 dll 文件。方法二就是使用 Qt 自带的发布程序工具 windeployqt.exe,可以生成所依赖的 dll 文件。这里着重讲解第二种方法,步骤如下:

1)生成release或者debug版本的exe可执行文件(x64或x86);

2)在左下角开始菜单栏找到QT的命令交互对话框,如Qt 5.8 32-bit for Desktop (MSVC 2013),双击打开,进入命令对话框;

3)加入指令windeployqt XXX.exe即可,后面的XXX.exe可以是将生成的可执行文件直接拖入即可,会包含exe的文件路径,生成的Qt的dll也会在可执行文件目录里。

四、打包程序

Inno Setup 是一个免费的 Windows 安装程序制作软件,小巧、简便、精美是其最大特点,支持 pascal 脚本,能快速制作出标准 Windows2000 风格的安装界面,足以完成一般安装任务。
官方下载地址:http://www.jrsoftware.org/isdl.php#stable

下载后直接安装即可。

项目开发完成之后,需要打包程序发行,可以使用 Inno Setup 软件制作安装 exe。以下详细讲解如何打包应用程序:

1)打开 Inno Setup Complier,点击 【file】→【new】,新建一个脚本向导程序,然后点击【next】;
在这里插入图片描述
2)在应用程序信息中输入 “应用程序名称”、“应用程序版本”、“应用程序发布者”、“应用程序网站”,这些信息会自动在脚本中生成,然后点击下一步;
在这里插入图片描述
3)自定义打包文件的的输出地址以及输出文件夹的名称,然后点击下一步;


http://www.kler.cn/a/412331.html

相关文章:

  • Dart 中 initializer lists
  • 2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现
  • 八股文-基础知识-面试题汇总(一)
  • 第R4周:LSTM-火灾温度预测(TensorFlow版)
  • vscode自动打印日志插件
  • 在vue中,根据后端接口返回的文件流实现word文件弹窗预览
  • 微信小程序首页搜索框的实现教程
  • idea_常用设置
  • RSA算法和AES算法,哪种更安全
  • 电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程
  • C++网络编程:select IO多路复用及TCP服务器开发
  • 三格电子—EtherNet IP转Modbus RTU网关
  • Docker安装及常用命令
  • 信息安全实验--密码学实验工具:CrypTool
  • Rust学习(九):密码生成器
  • QT:生成二维码 QRCode
  • AIGC学习笔记(7)——AI大模型开发工程师
  • LeetCode题练习与总结:第三大的数--414
  • 【设计模式】【行为型模式(Behavioral Patterns)】之责任链模式(Chain of Responsibility Pattern)
  • 极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【二】
  • 【力扣】125. 验证回文串
  • 集成金蝶云星空数据至MySQL的完整案例解析
  • 【es6】原生js在页面上画矩形及删除的实现方法
  • 【Linux】基础IO-文件描述符
  • 【Linux学习】【Ubuntu入门】2-5 shell脚本入门
  • CentOS 环境使用代理下载数据失败-EOF occurred in violation of protocol (_ssl.c:1002)