【项目】[Qt] QT 发布程序;生成exe 、添加依赖dll 库、(可选)打包成单exe (含qt IDE和vs版)

若需要添加自定义图标

软件发布后会使用默认应用程序图标(即软件出错时经常看到的那个图标)
若需要美观自定义图标,参考此文档

https://blog.csdn.net/gongfpp/article/details/120641056

qt IDE版

编译为release版本

Debug版本方便调试,而release版本则是为发布面向用户的软件的版本,release版本省略了大量的debug操作,编译器自动识别并在编译时自动优化程序,提高软件运行效率,因此我们需要用release版本编译
在这里插入图片描述

使用qt添加依赖库

我们找到编译后的exe所在目录
在这里插入图片描述
这里面包括了程序的.h .cpp和编译生成的.o等中间文件,我们运行时只需要exe文件
而此时双击exe文件,会发现缺少依赖dll等出错信息,这是因为我们使用qt creator的运行时,qt自动调用了所需的各种dll文件等,而我们自己手动打开exe,则没有qt的帮助。
为防止其他文件的干扰,我们新建一个文件夹,复制该exe文件进去,开始打包依赖库。
在这里插入图片描述
按下windows徽标键 ,搜索你所用的编译器的版本 (我这里用的是minGw 64bit)打开
在这里插入图片描述

窗口中输入cd D:\code\Qt\build-Homeworktor-Desktop_Qt_5_12_3_MinGW_64_bit-Release\release\Homeworktor
(路径换成你自己刚才新建的exe目录,若目录不处于C盘则需要先切换到相应盘符)
在这里插入图片描述
此时如上图 输入windeployqt Homeworktor.exe (exe换成你自己的文件名)
打包完如下图在这里插入图片描述
在这里插入图片描述
该目录则包括了所需的所有文件和依赖项 此时已经可以双击使用exe
注:若仍出现如找不到libgcc_s_dw2-1.dll, 尝试重新安装该程序以解决问题.等错误,可能是构建套件与编译时的编译器版本不符合,需要选择相同版本的编译器重新执行windeployqt,即下图两者相同
构建套件
在这里插入图片描述

Visual Studio版

编译并生成exe

vs里点击在这里插入图片描述
则会生成exe

用tool程序添加依赖库

首先启动下图程序在这里插入图片描述
接下来需要两个目录
1.对应32|64位的windeployqt.exe程序目录,一般在类似下图的qt安装目录。
在这里插入图片描述
2.欲编译的程序release版目录。一般在vs项目目录中的release目录中,找到exe文件在这里插入图片描述
如果没有,则先在vs中编译运行一次。

然后我们同样新建一个文件夹,把exe丢进去,这时我们可以看到,exe运行不了(因为没有依赖文件)。
在这里插入图片描述

我们使用tool工具,cd进入新建的文件夹(这里文件夹名为exe),使用
…\目录\windeployqt.exe -release 目标exe名
如下图所示
在这里插入图片描述
注意注意 :这地方–release 不是单横线 图中打错了 但能运行 不知道有没有问题
完成后目录中会添加进项目所需的各种文件,此时即可运行
在这里插入图片描述

(选做)打包成一个exe文件

这时文件夹内有一堆文件,如果我们的项目并不大,仅是一个小工具,则一个大文件夹丢给用户使用则显得不方便,我们可以打包成一个exe文件。
首先下载 Enigma Virtual Box

https://enigmaprotector.com/en/downloads.html

安装后打开
在这里插入图片描述
在这里插入图片描述
此时在3处选择Add Folder Recursive 选择主exe所在的有一堆dll的目录(大部分情况下即1处的目录) 然后OK
在这里插入图片描述
点OK,则如上图,此时可以Files Options 中压缩文件
在这里插入图片描述
勾选Compress Files 则压缩文件 ,使exe体积更小(不知道有没有性能损失)
然后Process 等待结束 run则立即打开生成的单exe close则关闭,此时已在2处所选目录生成新的单exe文件,移动它到其他地方 ,双击试试,已经可以单独运行了。

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值