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

news2025/1/12 4:59:39

记录一次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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统复习-Linux的文件系统

文件系统概述 FAT FAT(File Allocation Table)FAT16、FAT32等,微软Dos/Windows使用的文件系统使用一张表保存盘块的信息 NTFS NTFS (New Technology File System)WindowsNT环境的文件系统NTFS对FAT进行了改进,取代了日的文件系统 EXT EXT(Extended…

SAP 服务提供者 (Services Provider)接口测试笔记

文章目录 SAP 服务提供者 (Services Provider)接口测试笔记设置Content-Type授权SAP接口测试-SoapUI参数配置 SAP 服务提供者 (Services Provider)接口测试笔记 现在我在SAP里面公布了一些查询接口,现在就是要用SoapU…

Unity3D测量面积和角度实现方法(二)

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、unity测量面积👉1-1 视频效果👉1-2 先创建预制体👉1-3 在创建LineRenderer预制体👉1-4 代码如下 👉二、测量平面和测量空间切换&…

AIGC绘画设计基础:AI-MidJourney关键词大全+万能架构+保姆级教程(建议收藏!)

随着 ChatGPT 的热度席卷全网,越来越多人开始关注 AIGC(AI Generated Content)的相关应用。 其中Midjourney 作为一款强大的 AI 图像生成工具,与其他AI图像生成相比,Midjourney学习成本更低,生成速度更快&a…

Unity年中大促618活动又来了3折模板特效角色动画插件工具FPS生存建造模板RPG和2D素材优惠码UNITY6182024限时20240611

独立游戏开发需要找各种美术资源和模板,可以在低价时看看,节省开发时间。 Unity年中大促618活动又来了3折模板特效角色动画插件工具FPS生存建造模板RPG和2D素材优惠码UNITY6182024限时202406111104 300 款Unity引擎适配资源 3 折特惠,结账时输…

拥抱开源,构建未来:王嘉树与 TDengine 的开源之旅

在当代的技术浪潮中,开源文化不仅催生了无数创新技术,也为广大技术爱好者提供了一个展示才华、相互学习的平台。我们今天采访到的这位北京邮电大学电子工程学院的研究生,就是在这样的背景下,通过开源活动不断探索、学习并实现自我…

耐用充电宝有哪些?优质充电宝到底选哪个?良心推荐!

在电量即生产力的现今时代,如何为移动设备寻找一位最佳的伴侣呢?一款耐用、优质的充电宝无疑是你的不二之选。今天我们将带您揭开市场隐藏的一面,揭示哪些充电宝品牌真正代表了耐用与品质的标杆。让我们一起深入了解并选购最适合自己的充电宝…

合法二叉搜索树

题目链接 合法二叉搜索树 题目描述 注意点 无 解答思路 第一个思路是将中序遍历,并将遍历到的节点的值存储到队列中,根据队列先进先出的特点将每次弹出的元素与其前面的值进行比较,如果队列是按照从小到大进行排序的,说明该树…

CATIA入门操作案例——创成式曲面设计案例,吹风机的绘制,多截面曲面的绘制,曲面偏移和修剪

目录 引出画吹风机吹风机壳体多截面曲面吹风机后壳桥接曲面吹风机把手多截面曲面进行曲面的修剪绘制把手的后盖绘制内凹的圆曲面进入零件工作台,定义厚曲面绘制进气凹槽 总结异形弹簧新建几何体草图编辑,画一条样条线进行扫掠,圆心和半径画出…

基于机器学习的电池剩余使用寿命RUL预测

​代码较为简单。 import numpy as np # linear algebraimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)import os import matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline​import warningswarnings.filterwarnings(ignore) df…

2024年6月8日,骑行杨柳冲峡谷:一场心灵与自然的交响曲

引言:寻找生活的节奏在这个快节奏的时代,我们常常迷失在都市的喧嚣中,忘记了如何聆听内心的声音。2024年6月8日,我与一群志同道合的校卡骑行群骑友,踏上了前往杨柳冲峡谷的旅程,这不仅仅是一次简单的户外活…

C++ BFS相关题目

目录 图像渲染 岛屿数量 图像渲染 733. 图像渲染 vis就是标记1有没有被用过 符合条件的都放到队列里,每次出队列一个,判四个, 如果要改的值与当前的值相同直接返回 注意:image[x][y] prev要放在坐标判断的后面&#xff…

【数据分析】统计学基础及Python具体实现

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…

检查平衡性

题目链接 检查平衡性 题目描述 注意点 平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1 解答思路 递归寻找每个节点作为根节点时是否是平衡树,对于任意一个节点,判断其是否是平衡树需要分别判断其左子树和右子树是…

【Echarts系列】平滑折线面积图

【Echarts系列】平滑折线面积图 序示例数据格式代码 序 为了节省后续开发学习成本,这个系列将记录我工作所用到的一些echarts图表。 示例 平滑折线面积图如图所示: 数据格式 data [{name: 2020年,value: 150},{name: 2021年,value: 168},{name: 2…

edge的GPU占很大内存处理

到设置中,把对视频的这2个增强关掉,重启浏览器之后就正常多了

自动检测曲别针数量:图像处理技术的应用

引言 在这篇博客中,我们将探讨如何使用计算机视觉技术自动检测图像中曲别针的数量。 如图: [1]使用灰度转换 由于彩色信息对于曲别针计数并不重要,我们将图像转换为灰度图,这样可以减少处理数据的复杂度,加速后续的…

史上最全,呕心沥血总结oracle推进SCN方法(六)

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等) 公众号:老苏畅谈运维 欢迎关注本人公众号,更多精彩与您分享。前面介…

pycharm爬取BOSS直聘岗位信息

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

419. 甲板上的战舰 Medium

给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 X 或者是一个空位 . ,返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行…