QT exe软件输出

本教程对应的软件是Qt Creater,只有绿色便携版能正常运行才能够打包成单文件版和可安装版。

一、绿色便携版

特点:给别人发送的时候需要先制作成一个压缩包文件,解压即用。 使用Qt自带的程序

1、给exe软件添加图标

exe软件的图标,而不是主窗口左上角的图标 图标分享 | 30 个免费 icon 下载网站 - 知乎

如果是自己的图片,可以提供这两个网站进行ico的转换

吱吱工具箱butterPig - 便捷智能的图片处理工具集

在线生成透明ICO图标------ICO图标制作

1.1、找到图标后下载.ico文件的图片到本地

1.2、放到工程文件根目录,然后在Qt Creator中修改pro文件,例如我的ico文件名为crt_app.ico,那么我在pro文件的最后一行加上RC_ICONS = crt_app.ico

1.3、编译运行即可

2、生成绿色便携版软件

2.1、将项目改为Release版本,这里不是必须的,改了的好处是发布的软件的体积比较小

2.2、编译后软件输出在build-PaintSystem-Desktop_Qt_5_15_14_MinGW_64_bit-Release的编译输出的目录找到对应版本下的exe程序

2.3、新建一个文件夹,把exe文件复制过去,我的文件夹叫my_exe。 后面则是添加运行环境

2.4、打开QT自带的软件,我这里的编译器是MinGW,所以选择MinGW版本

2.5、进入到刚才新建的目录(这一步很重要)

也可以单击鼠标右键,如果有终端打开,则跳过2.4与2.5

2.6、执行windeployqt 编译出来的xxxxx.exe

windeployqt xxxx.exe

2.7、执行完毕就会发现在刚才新建的目录下多了很多新文件,这都是执行刚才的命令QT自动帮我们拉取过来的运行我们的exe必须的依赖环境,在这个文件夹内双击运行我们的exe,一切正常之后就可以把这个文件夹打包发给别人了!这就是绿色便携版。

注意:如果运行还提示缺少某个dll,那就需要我们手动将这个dll复制到我们新建的目录下。

二、单文件exe版

单文件版的特点:给别人发送的是一个包含运行环境的exe文件,双击即可使用

单文件版需要借助辅助工具进行 , 使用 Enigma Virtual Box

官网Software Protection, Software Licensing, Software Virtualization

安装 Enigma Virtual Box则是一路next。

1、选择待封包的主程exe

2、选择做下角add-----选择第二项Add_Folder,然后选择刚才新建的文件夹,确认即可

3、点击文件选项-----压缩文件,然后确定即可

4、最后一步,点击Process进行封包

5、然后在我们刚才新建的文件夹下会多出来一个_boxed.exe结尾的exe文件,这个就是单文件版,可以直接把这个exe文件发送给别人,双击即可使用。

三、可安装版

特点:给别人发送安装包,需要先安装再使用。

同理,也是需要借助辅助工具进行 使用Inno Setup

官网 Inno Setup

安装 Inno Setup则是一路next。

1、选择新建,直接Next

2、设置软件的名称,软件版本号,发布者,软件的官网。

3、设置软件的安装文件夹,默认即可

4、设置可执行文件,设置可执行文件的依赖环境

5、设置关联的文件格式

6、设置开始菜单和桌面快捷方式

7、设置安装信息,如果设置了许可文件,那么双击安装包会先弹出来该文件的内容,同意了才能进行安装。

8、设置安装模式

9、设置安装语言

10、设置安装包制作后的存放位置、安装包的名称、安装包的图标(不设置是默认图标)、安装密码

11、设置#define编译指令

12、点击Finish

13、编译脚本,选择是,然后设置保存脚本的位置,完成即可在第十步设置的文件夹看到制作的安装包,双击即可安装。

相关推荐
浪子明X1 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
Quz2 小时前
QML StackView:实现卡片堆叠效果
qt
Quz3 小时前
QML Drawer 抽屉导航详解
qt
xiangyun614 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun614 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
白远山5 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
DevRay6 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
free-elcmacom6 小时前
C++学习<1>程序分区
开发语言·c++
醉颜凉6 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言
默 语6 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重