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

用 Enigma Virtual Box 把 Qt 程序压成单文件 EXE——从编译、收集依赖到一键封包

关键词:Qt、windeployqt、Enigma Virtual Box、单文件、绿色软件


为什么要打成单文件?

  • 传统做法:用 windeployqt 把依赖拷进 release 目录,发给用户一个文件夹,文件又多又乱。
  • 理想做法:把整个目录压成一个 .exe,双击即跑,拷贝即走,干净清爽。

Enigma Virtual Box(下文简称 EVB)就是干这件事的免费利器。官方下载:https://enigmaprotector.com


🚀 打包全流程(图文详解)

📂 第一步:准备 QT 程序
  1. 使用 Release 模式 编译程序

    bash

    qmake && make release
    
  2. 在编译目录找到生成的 .exe 文件(如 MyApp.exe

📦 第二步:收集依赖文件
  1. 使用 Qt 自带的部署工具:

    bash

    windeployqt --release MyApp.exe
    
  2. 手动补充常见缺失 DLL

    路径:QT安装路径 C:\Qt\Qt5.14.1\5.14.1\mingw73_32\bin

    • libgcc_s_dw2-1.dll
    • libstdc++-6.dll
    • libwinpthread-1.dll
    • opengl32sw.dll
      在这里插入图片描述

🌐 第三步:新建一个空白文档

在文件资源管理器上任意位置新建一个空白文件夹(文件夹名最好是英文),我的是Demo,找到自己的工程所在文件夹,里面的build-uart-Desktop_Qt_5_14_1_MinGW_32_bit-Release文件夹,将之前编译的release文件夹里面的.exe文件拷贝到自己建Demo文件夹中。
在这里插入图片描述

🚀 第四步:在这里一键收集依赖库

点击鼠标右键进入终端。
在这里插入图片描述
在终端中执行:**windeployqt MyApp.exe`**指令

(windeployqt + 你的exe文件名),我这里执行windeployqt32 uart.exe是因为我的软件有的是32位,有的是64位,我为了区分,才这样弄。
在这里插入图片描述
执行完后,刚刚新建的Demo文件夹会出现相关目录。 Qt5Core.dll、platforms 目录、各种 qml/QtQuick 目录等
在这里插入图片描述

🛠️ 第五步:配置 Enigma Virtual Box

打开Enigma Virtual Box软件。

EVB 主界面很简洁,只有两个必填项:

  • ① 输入文件:选 MyApp.exe
  • ② 输出文件:自动生成 MyApp_boxed.exe,可改路径。
    在这里插入图片描述
    选择完文件后需要添加依赖库,按照图片中的顺序。
    在这里插入图片描述
    这里需要选择刚刚建的Demo文件夹。弹出的框直接点击确定。

在这里插入图片描述
到这里就打包完成了,打包完成的文件也会在刚才的文件夹里,如果在这里面双击打不开,可以按照上面的方法把那几个.dll文件粘进来,这样就完成了QT程序的打包。


如果本文帮到了你,欢迎点赞/收藏;打包过程中遇到别的坑,欢迎留言交流!

http://www.dtcms.com/a/319412.html

相关文章:

  • 大数据spark、hasdoop 深度学习、机器学习算法的音乐平台用户情感分析系统设计与实现
  • 多线程 future.get()的线程阻塞是什么意思?
  • Spark Memory 内存设计的核心组件
  • 2025年主流开源音视频播放项目深度解析
  • 数据结构——B-树、B+树、B*树
  • flutter-使用AnimatedDefaultTextStyle实现文本动画
  • 状压DP-子集枚举技巧
  • MySQL UNION 操作符详细说明
  • 机器视觉系统工业相机的成像原理及如何选型
  • 数据结构-哈希表(散列表)
  • 进程控制:进程的创建、终止、阻塞、唤醒、切换等生命周期管理操作
  • 基于深度学习的调制信号分类识别算法的研究生学习之旅
  • C语言sprintf、strcmp、strcpy、strcat函数详解:字符串操作的核心工具
  • Modbus转Profinet网关与西门子PLC的互联配置案例:用于永宏品牌变频器的控制实现
  • 一个基于 epoll 实现的多路复用 TCP 服务器程序,相比 select 和 poll 具有更高的效率
  • 并发编程(三)线程模型和通信
  • 【AI算法承载】海思3516DV500+IMX664方案一体机芯,开放AI算法部署二次开发
  • 蓝桥杯----数码管、按键、定时器与中断
  • PTrade详细介绍
  • 【遥感图像入门】遥感中的“景”是什么意思?
  • 深入理解 ReentrantLock和AQS底层源码
  • 专题:2025财务转型与AI赋能数字化报告|附30+份报告PDF汇总下载
  • 《深入解析缓存三大难题:穿透、雪崩、击穿及应对之道》
  • cv2.threshold cv2.morphologyEx
  • 宝塔面板配置Nacos集群
  • Plant Biotechnol J(IF=10.5)|DAP-seq助力揭示葡萄白粉病抗性机制
  • 什么是POE接口?通俗理解
  • Pytest项目_day07(pytest)
  • MySql MVCC的原理总结
  • S7-1200 串行通信介绍