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

利用Enigma Virtual Box将QT生成的软件打包成一个exe可执行文件

目录

前言

一、准备工作

1. 完成 QT 软件的编译

2. 收集软件依赖文件

3. 安装 Enigma Virtual Box

二、使用 Enigma Virtual Box 进行打包

1. 启动 Enigma Virtual Box

2. 添加要打包的主程序

3.添加主程序依赖

4.执行封包 

总结 


前言

        我们一般在QT软件完成开发以后,可能会用QT自带的windeployqt工具将依赖添加到release文件夹内,然后直接将文件夹发给对方,但是这样比较的乱,如果能把它们打包成一个独立的 exe 可执行文件,能方便用户安装和使用。本文将详细介绍如何使用 Enigma Virtual Box 工具,实现将 QT 生成的软件打包成单一 exe 文件的全过程。

一、准备工作

1. 完成 QT 软件的编译

在 QT Creator 中,确保项目以 Release 模式进行编译。通过菜单栏选择 “构建” -> “构建套件选择器”,将模式切换为 “Release” ,然后点击 “构建” -> “构建项目”。编译成功后,在项目目录的release文件夹中,会生成软件的可执行文件(.exe)。

2. 收集软件依赖文件

QT 软件运行时依赖众多动态链接库(DLL)和其他资源文件,我们可以借助 QT 自带的windeployqt工具来收集这些依赖。打开 QT 命令提示符(在开始菜单中找到对应的 QT 版本命令行工具),使用cd命令切换到软件可执行文件所在的release目录,然后执行命令windeployqt your_app_name.exe(将your_app_name.exe替换为实际的可执行文件名)。windeployqt会自动扫描并复制所需的依赖文件到当前目录。

3. 安装 Enigma Virtual Box

从 Enigma Virtual Box 的官方网站下载安装程序,根据系统类型(32 位或 64 位)选择对应的版本进行下载。下载完成后,按照安装向导的提示完成软件的安装(免费)。

 

 

二、使用 Enigma Virtual Box 进行打包

1. 启动 Enigma Virtual Box

安装完成后,双击桌面上的 Enigma Virtual Box 图标启动软件,进入其主界面。我们可以选择语言为中文,然后重启软件,重启后入下图所示。

2. 添加要打包的主程序

我们点击第一个浏览按钮,选择QT生成的exe文件。然后下面封包程序另存下面会自动生成一个路径,我们打包好的程序会放到该路径下,当然我们也可以自己手动修改这个路径。

3.添加主程序依赖

我们可以点击左下角那个增加按钮,可以选择增加文件和增加文件夹(递归) ,这里我选择的是增加文件夹(递归),选择的是release这个目录,release下面所有的文件都会添加到里面,也包括主程序,但是主程序不需要我们自己添加,所以需要选择文件中的主程序,然后点击下面的移除按钮,现在所有的依赖文件我们就添加完成了。

4.执行封包 

我们点击下面的执行封包按钮,就开始打包程序了,等待一小会,如果提示

15:29:131生成最终的交件[15:29:19]交件已成功保存为XXXXXXXXXXX

就表示打包成功了,我们将这个打包好的文件复制出来, 单独防一个文件夹,如果有所需的ini配置文件也一并复制过来,运行一下测试功能,没有问题的话基本上就OK了。

总结 

        这个方法基本上可以告别凌乱的release文件夹,但是我在打包的时候添加文件的时候偷懒了,直接添加的整个realse文件夹,应该有不需要添加的文件,这个有时间的小伙伴可以自己优化一下。

 

http://www.lryc.cn/news/571418.html

相关文章:

  • 第100+42步 ChatGPT学习:R语言实现阈值调整
  • uniapp + vite + ts出现红色波浪线,各种ts报错
  • LeetCode--33.搜索旋转排序数组
  • 探秘KingbaseES在线体验平台:技术盛宴还是虚有其表?
  • List、Queue、Deque、Stack常用方法总结
  • 论文笔记:Trajectory generation: a survey on methods and techniques
  • DELL R730XD服务器调整风扇转速
  • python+uniapp微信小程序的共享雨伞租赁系统
  • [特殊字符]华为总部参观预约|企业通道揭秘
  • MySQL 中 DISTINCT 去重的核心注意事项详解
  • MSPM0G3507学习笔记(二) 超便捷配置led与按键
  • ffmpeg webm 透明通道视频转成rgba图片
  • 基于最新豆包大模型1.6实现 ArXiv Paper Reading MCP与Agent构建
  • C++ map代码练习 1、2、priority_queue基础概念、对象创建、数据插入、获取堆顶、出队操作、大小操作,自定义结构、代码练习 1 2
  • 电机及驱动器的安全、性能和能效认证
  • 02 ( chrome 浏览器插件, 立马翻译), 搭建本地 api
  • c++学习-多态
  • MacOS上MySQL的安装以及使用
  • 【编译工具】CodeRider 2.0:驭码 CodeRider 2.0 产品功能分析
  • 【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(软件篇)(二)
  • RK 安卓10/11平台 HDMI-IN 调试
  • RAG轻松通-P1:分块
  • 爬虫技术:数据获取的利器与伦理边界
  • 输电线路电缆护层环流在线监测装置:原理、优势与应用解析
  • Elasticsearch/OpenSearch MCP Quickstart
  • 日本生活:日语语言学校-日语作文-沟通无国界(2):回忆深刻的生日
  • threejs webVR获取相机正前方向量
  • 【保姆级】讯飞ROS智能车 Debian系统 U盘克隆/恢复教程
  • Spring Boot启动流程深度解析(源码级剖析)
  • 键盘动作可视化技术浅析:如何做到低延迟显示