【QT】记录一次QT程序发布exe过程

记录一次QT程序发布exe过程

  • 使用windeploy与enigma发布独立的QT程序
    • 第一步 QT编译输出 **release** 版本
    • 第二步 QT 自带 windepoyqt 补全链接库
    • 第三步 enigma virtual box压缩打包为单一exe
    • 最后
      • 【2024-06-07 17】- 【补充】 贴一个自己用的bat脚本【**QtDeploy2exe.bat**】半自动部署
      • 【2024-06-09 12】 - 【补充】 关于打包后exe臃肿的问题以及软件生成新文件(文件夹)相关
        • exe文件太尼玛大了???
        • exe关联新文件(文件夹)的生成(文件外露)
    • 参考

使用windeploy与enigma发布独立的QT程序

第一步 QT编译输出 release 版本

你的编译器是啥就用啥就好了,我是 “ msvc 2019 64位 ”,选择“release”

QT release
这时候你会遇到问题如下:

在这里插入图片描述
很显然,这是同一级目录缺乏动态链接库 xx.dll 造成的,原来我都是傻傻的一个个找,拷贝粘贴。 **~我是傻逼~ **。

正确的办法: 我们来到第二步。

第二步 QT 自带 windepoyqt 补全链接库

  1. 在开始菜单中找到并打开你对应编译器的qt控制台工具
    在这里插入图片描述

  2. 切到对应目录或者直接把exe托人控制台,运行

    windeployqt xxxxx.exe

在这里插入图片描述

这时候,你会发现你的exe可以打开了,啦啦啦。。。

我比较顺序,如果你遇到其他问题,可以留言一起解决。

但是,目前带了一堆库文件,很臃肿,不方便发给别人用。

于是,来到第三步。

第三步 enigma virtual box压缩打包为单一exe

这部分有点坑,看完再操作,或者直接到下面最后查看完坑。

这个就得使用第三方应用了,下载链接如下:

enigma压缩打包

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

当我以为好l=一切都好了的时候,我还特意检查只有一个exe的情况下,点击运行生成的exe,MFK,居然 又报错.

在这里插入图片描述

问题出在哪里呢,其实是因为直接拖入release文件夹导致(蛮猜哈)

我们点击ADD(增加) : 增加文件夹【递归】 VERY 重要,然后执行封包,您再看看。

谢天谢地,终于在运行起来了。

在这里插入图片描述

最后

如果你要经常管理-发布,那么你就把这写一个bat,调用qt的控制台执行对应的操作,然后enigma 的工程也可以保存到你的项目目录,方便多次使用。

【2024-06-07 17】- 【补充】 贴一个自己用的bat脚本【QtDeploy2exe.bat】半自动部署

会玩的自行修改,写的不好…轻喷。。。

在这里插入图片描述

自己新建bat,复制粘贴,修改路径参数,然后用qt的控制台去运行,半自动。

@echo off
rem QT打包小助手 by Iamzui (有需要自行修改)
echo QT pack to one single exe file helper by Iamruzi

rem release文件夹
set RELEASE_DIR=D:\Works\Dr_Zhong\Projects\QtProjects\GControl2024\release

rem release文件夹app路径
set APP_DIR=%RELEASE_DIR%\GControl.exe

rem 打包压缩工具Enigma Virtual Box路径 
set ENIGMAVBOX_PATH=D:\Softwares\Tools\Deploy\Enigma Virtual Box\enigmavb.exe

cd /d "%RELEASE_DIR%"

rem /bin文件夹判定
if not exist bin (
    mkdir bin
    echo Folder 'bin' created.
) else (
    echo Folder 'bin' already exists.
)

rem 运行windeployqt 打包
echo Deploying Qt libraries...
windeployqt   %APP_DIR%

rem 拷贝exe主文件到bin
rem copy "%APP_DIR%" ".\bin\GControl.exe"

echo Deployment completed.

rem deploy结束后打开对应文件夹
rem start "" "%RELEASE_DIR%"

rem 运行Enigma Virtual Box打包压缩
echo Running Enigma Virtual Box...

start "" "%ENIGMAVBOX_PATH%"

echo Please follow the instructions in the Enigma Virtual Box dialog. You now need do it by your own hands.

echo 1. Choose input and output file path.(your oringinal exe and boxed file,you can rename it).

echo 2. Add folder, choose add "ADD FOLDER RECURSIVE".

echo 3. Click "File option", "enable files virtualization" and choose "Compress files".

echo 4. Click "Process",and just wait for a while,and check in your deploy folder....

echo Bat  run completed.

pause

【2024-06-09 12】 - 【补充】 关于打包后exe臃肿的问题以及软件生成新文件(文件夹)相关

exe文件太尼玛大了???

问题来源:

xx: 哎呀我妈呀,我的exe终于出来了,也可以正常运行不报错,太好了。。。
如子: 你看看你最后打包的exe文件大小
xx: 我了个豆,1个多g,你妈,这。。。
如子:想解决这个问题,我给个最基础的方案,放在下面了。当然还有很多奇淫技巧,减小exe的大小方法,这个是从根本解决的最基本方法。
xx:感谢感谢!

这里再说明一下,就是bat最好针对的修改一下,就是把windepoyqt生成的库文件,生成放在额外的一个文件,应为release大多数都有不少编译后的中间文件,如果后面使用enigma压缩,就会导致不必要的文件,使得整个文件过于臃肿。

调整之后,我的exe从1.2G来到了170多M,不错。。。

这样就 简而不大

exe关联新文件(文件夹)的生成(文件外露)

这个就是enigma设置一下就好了,主要针对一些配置,本地数据库文件打包后没有直观的再本地生成的问题。

在这里插入图片描述

  1. 关于文件

这个没啥特殊,你代码编写的时候,注意生成的数据文件的相对路径要调整。

比如你的配置文件是config.json,代码里最好是和生成exe文件同一级别,要不然找不着。

  1. 关于文件夹

这个要注意了!!!如果你的文件夹是exe生成的,同名字的文件夹记住不要打包到exe里。。。

  • [<(^-^)> ] 如果我遇到问题,我会持续在这里更新

参考

[1]: https://blog.csdn.net/xideaha/article/details/132382764

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/700897.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python数据分析--- ch3-5 python数字类型、算术运算符及流程控制语句

python数据分析--- ch3-5 python数字类型、算术运算符及流程控制语句 1.Ch3--数字类型的数据1.1 Python中的数据类型1.1.1整数类型(int)1.1.2 浮点类型(float)1.1.3复数类型(complex)1.1.4 布尔类型(bool) 1.2 数字类型的相互转换1.2.1 隐式类型的转换1.2.2 显式类型的转换 2. …

Python编程基础5

邮件编程 SMTP(Simple Mail Transfer Protocol)简单邮件传输协议,使用TCP协议25端口,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。…

惠州惠城:可燃气体报警器定期校准检测,安全更放心

在惠州惠城这片繁华的土地上,工业发展日新月异,安全问题愈发受到重视。其中,可燃气体报警器作为预防火灾和爆炸事故的重要设备,正在越来越多的场所得到应用。 今天,佰德就来探讨一下可燃气体报警器在惠州惠城的重要性…

实测 WordPress 最佳优化方案:WP Super Cache+Memcached+CDN

说起 WordPress 优化加速来可以说是个经久不衰的话题了,包括明月自己都撰写发表了不少相关的文章。基本上到现在为止明月的 WordPress 优化方案已经固定成型了,那就是 WP Super CacheMemcachedCDN 的方案,因为这个方案可以做到免费、稳定、安…

计算机网络知识CIDR(无类别域区间路由)

目录 介绍 基本信息 优点与关联 如何计算判定范围(你应该是来看这个的,前面是水字数的) 省流版 介绍 无类别域间路由(Classless Inter-Domain Routing、CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由…

STM32项目分享:智能蓝牙手环

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.c…

PCA与LDA

共同点 降维方法: PCA和LDA都是数据降维的方式,它们都能通过某种变换将原始高维数据投影到低维空间。 数学原理: 两者在降维过程中都使用了矩阵特征分解的思想,通过对数据的协方差矩阵或类间、类内散度矩阵进行特征分解&#xff…

鸿蒙低代码开发的局限性

在版本是DevEco Studio 3.1.1 Release,SDK是3.1.0(API9) 的基础上。 1、低代码插件没有WebView组件。 2、低代码插件没有空白的自定义组件,当前提供的所谓自定义组件,只能用列表中提供的组件来拼接新的组件。 3、使用ets代码自定义的组件&…

bugku--web---baby lfi

1、题目描述 2、页面提示使用language参数 3、构造url:/?languagefr。页面有回显 4、这里提示包含关键的文件 5、构造url:/?language/etc/passwd 6、flag shellmates{10CA1_F11e_1Nc1US10n_m4y_r3ve4l_in7Er3st1nG_iNf0Rm4t1on}

单北斗定位手持终端的优势

在追求精准与效率的现代生活中,单北斗定位手持终端以其独特优势,为众多行业领域带来了前所未有的便利与安全保障。凭借北斗卫星导航系统的高精度定位能力,这款单北斗定位手持终端不仅能在复杂环境中实现厘米级别的位置锁定,还具备…

五分钟“手撕”二叉树

代码放开头,供大家查阅。 但是对于树来说,更重要的是理解树的概念,树的概念很多,题却是千篇一律,这篇博客详细的讲解了概念,看完必有很大的收获。 目录 一、实现代码 二、什么是树 三、树的重要概念 四…

探索未来教育的智慧教学整体架构:数字化时代的教育革命

在数字化时代,教育领域也正在经历着前所未有的变革和创新。智慧教学整体架构作为教育技术与教学实践的完美结合,正在成为推动教育革命的关键力量。本文将深入探讨智慧教学整体架构的概念、核心组成部分以及其在未来教育中的应用前景。 **智慧教学整体架构…

C++设计模式---装饰器模式

1、介绍 装饰器(Decorator)模式是一种结构型设计模式,它允许你动态地给一个对象添加额外的职责。 装饰器模式主要用于扩展对象的功能,而又不改变其原有结构。在C中,装饰器模式主要应用于那些需要为对象动态添加功能或改…

IO流的转换流

目录 ​编辑 转换流 利用转换流按照指定字符编码读取 利用转换流按照指定字符编码写出 将本地文件中的GBK文件。转成UTF-8 练习 序列化流 反序列化流 /对象操作输入流 序列化流/反序列化流的细节 练习 转换流 是字符流和字节流之间的桥梁 字符转换输入流:InputS…

QWidget 属性——windowTitle·windowIcon·qrc

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:QT ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、windowTitle二、windowIcon三、qrc 一、windowTitle windowTitle 是一个通常用于表示窗口标题…

金融科技企业如何提高服务效率

一、引言 在金融科技(FinTech)领域,服务效率是企业竞争力的重要组成部分。随着科技的不断进步和市场竞争的加剧,金融科技企业必须不断提升服务效率,以满足客户需求,赢得市场份额。本文将从多个角度详细阐述…

AB测试学习(附有相关代码)

目录 一、基本概念1. 定义2. 作用3. 原理 二、实验基本原则三、实验步骤四、实验步骤详解1. 确定实验目的2. 确定实验变量3. 实验指标设计3.1 实验指标类型(按作用区分)3.1.1 核心指标3.1.2 驱动指标(跟踪指标)3.1.3 护栏指标 3.2…

pycharm爬取BOSS直聘岗位信息

编译器:Pycharm 效果展示如图 简单原理描述:模拟人工动作爬取页面信息,运行脚本后代码自动打开浏览器获取相关信息,模拟人工进行页面跳转并自动抓取页面信息记录到表格中。 深入原理描述:页面翻转的时候会调用接口&am…

Pixi.js学习 (四)鼠标跟随、元素组合与图片位控

目录 一、鼠标移动跟随 1.1 获取鼠标坐标 1.2 鼠标跟随 二、锚点、元素组合 2.1 锚点 2.2 元素组合 三、图片图层 四、实战 例题一:完成合金弹头人物交互 例题二:反恐重击瞄准和弹痕 例题一代码: 例题二代码: 总结 前言 为了提高作…

【会议征稿,五大海内外高校支持】第四届经济发展与商业文化国际学术会议(ICEDBC2024,6月21-23)

第四届经济发展与商业文化国际学术会议(ICEDBC2024)将于2024年6月21-23日在中国大连隆重召开。会议主要围绕“经济发展”“商业文化”等研究领域展开讨论。 旨在为经济,商业的专家学者及企业发展人提供一个分享研究成果、讨论存在的问题与挑战…