用 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.pswp.cn/bicheng/92460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92460.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

unity中實現選中人物腳下顯示圓形標識且完美貼合復雜地形(如彈坑) 的效果

要實現人物腳下圓形 完美貼合復雜地形(如彈坑) 的效果,核心思路是 「動態生成貼合地面的 Mesh」 —— 即根據地面的高度場實時計算環形頂點的 Y 坐標,讓每個頂點都 “貼” 在地面上。核心邏輯:確定環形范圍&#xff1a…

引領GameFi 2.0新范式:D.Plan攜手頂級財經媒體啟動“龍珠創意秀”

在GameFi賽道尋求新突破的今天,一個名為Dragonverse Plan(D.Plan)的項目正以其獨特的經濟模型和宏大愿景,吸引著整個Web3社區的目光。據悉,D.Plan即將聯合中文區頂級加密媒體金色財經與非小號(Feixiaohao&a…

通信算法之307:fpga之時序圖繪制

時序圖繪制軟件 一. 序言 在FPGA設計過程中,經常需要編寫設計文檔,其中,不可缺少的就是波形圖的繪制,可以直接截取Vivado或者Modelsim平臺實際仿真波形,但是往往由于信號雜亂無法凸顯重點。因此,通過相應軟…

計網學習筆記第3章 數據鏈路層(灰灰題庫)

題目 11 單選題 下列說法正確的是______。 A. 路由器具有路由選擇功能,交換機沒有路由選擇功能 B. 三層交換機具有路由選擇功能,二層交換機沒有路由選擇功能 C. 三層交換機適合異構網絡,二層交換機不適合異構網絡 D. 路由器適合異構網絡&…

SQL的LEFT JOIN優化

原sql,一個base表a,LEFT JOIN三個表抽數 SELECT ccu.*, ctr.*, om.*, of.* FROM ods.a ccu LEFT JOIN ods.b ctr ON ccu.coupon_code ctr.coupon_code AND ctr.is_deleted 0 LEFT JOIN ods.c om ON ctr.bill_code om.order_id AND om.deleted 0 LEFT JOIN ods.…

Redis 核心概念、命令詳解與應用實踐:從基礎到分布式集成

目錄 1. 認識 Redis 2. Redis 特性 2.1 操作內存 2.2 速度快 2.3 豐富的功能 2.4 簡單穩定 2.5 客戶端語言多 2.6 持久化 2.7 主從復制 2.8 高可用 和 分布式 2.9 單線程架構 2.9.1 引出單線程模型 2.9.2 單線程快的原因 2.10 Redis 和 MySQL 的特性對比 2.11 R…

【Day 18】Linux-DNS解析

目錄 一、DNS概念 1、概念和作用 2、域名解析類型 3、 軟件與服務 4、DNS核心概念 區域 記錄 5、查詢類型 6、分層結構 二、DNS操作 配置本機為DNS內網解析服務器 (1)修改主配置文件 (2)添加區域 正向解析區域: …

Python 中 OpenCV (cv2) 安裝與使用介紹

Python 中 OpenCV (cv2) 安裝與使用詳細指南 OpenCV (Open Source Computer Vision Library) 是計算機視覺領域最流行的庫之一。Python 通過 cv2 模塊提供 OpenCV 的接口。 一、安裝 OpenCV 方法 1:基礎安裝(推薦) # 安裝核心包&#xff0…

微軟WSUS替代方案

微軟WSUS事件回顧2025年7月10日,微軟最新確認Windows Server Update Services(WSUS)出現了問題,導致IT管理員無法正常同步和部署Windows更新。WSUS是允許管理員根據策略配置,將更新推送到特定計算機,并優化…

Minio 分布式集群安裝配置

目錄創建 mkdir -p /opt/minio/run && mkdir -p /etc/minio && mkdir -p /indata/disk_0/minio/datarun:啟動腳本及二進制文件目錄/etc/minio:配置文件目錄data:數據存儲目錄下載 minio wget https://dl.min.io/server/minio…

Spring Boot + ShardingSphere 實現分庫分表 + 讀寫分離實戰

🚀 Spring Boot ShardingSphere 實現分庫分表 讀寫分離(涵蓋99%真實場景) 🏷? 標簽:ShardingSphere、分庫分表、讀寫分離、MySQL 主從、Spring Boot 實戰 分庫分表 vs 讀寫分離 vs 主從配置與數據庫高可用架構區別 …

將普通用戶添加到 Docker 用戶組

這樣可以避免每次使用 Docker 命令時都需要 sudo。以下是具體步驟:1. 創建 Docker 用戶組(如果尚未存在) 默認情況下,安裝 Docker 時會自動創建 docker 用戶組。可以通過以下命令檢查: groupadd docker(如果…

Scrapy(一):輕松爬取圖片網站內容?

目錄 一、CrawlSpider 簡介? 二、實戰案例:圖片網站爬取? 三、代碼解析:核心組件詳解? 類定義: 2.核心屬性:? 3.爬取規則(Rules):? 4.數據提取方法(parse_item)…

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案方案 1:配置 systemd 服務文件(推薦)1. 檢查/創建 Redis 的 systemd 服務文件2. 配置關鍵參數(覆蓋配置示例)3. 重…

Eclipse 代碼模板

Eclipse 代碼模板 引言 Eclipse 作為一款功能強大的集成開發環境(IDE),深受廣大開發者的喜愛。在編程過程中,使用代碼模板可以大大提高開發效率,減少重復勞動。本文將詳細介紹 Eclipse 代碼模板的配置、使用方法以及一…

輸電線路防外破聲光預警裝置 | 防山火/防釣魚/防施工安全警示系統

在輸電網絡的安全保障中,外力破壞是一個不容忽視的問題,各類隱患可能對電力系統造成嚴重影響。TLKS-PMG-WP 輸電線路聲光防外破警示裝置在應對這類挑戰時,有著獨特的技術表現,下面從功能和技術參數兩方面進行詳細介紹。核心功能解…

STM32——STM32CubeMX

總:STM32——學習總綱 一、簡介 注意,非邏輯代碼。 可兼容不同系列的STM32Cube固件包。 STM32Cube前置知識鏈接: STM32——HAL庫 不可過多依賴,此工具只針對STM32芯片,類似英飛凌芯片無法配置。主要用于參考。 二、安…

Java NIO 核心原理與秋招高頻面試題解析

一、NIO 概述Java NIO(New I/O 或 Non-blocking I/O)是 Java 1.4 引入的一套全新 I/O API,位于 java.nio 包下。NIO 提供了與傳統 BIO(Blocking I/O)完全不同的 I/O 處理方式,通過非阻塞模式、緩沖區&#…

vue3+element-plus,el-popover實現篩選彈窗的方法

實現一個篩選框,點擊篩選按鈕出現彈窗,彈窗內有選擇框/輸入框/單選框等等,底部有重置/確定兩個按鈕。需求:點擊篩選外部其他位置可以關閉彈窗,關閉彈窗后已編輯的數據不保存,點擊確定按鈕關閉彈窗&#xff…

python每日一題 貪心算法練習

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發,開始時油箱為空。給定兩個整數數組 gas 和 cost &…