QT從入門到入土(八)——項目打包和發布


引言

新手上路可謂是困難重重,你永遠不知道下一個困難會在什么時候出現,在完成了運動控制卡封裝發布過程中可謂是舉步維艱。因此記錄一下qt5+vs2019的打包發布方法。

打包整體思路:

  • 將編譯后的exe可執行文件及其各種依賴dll、lib、圖標、配置文件等先打包放到一個目錄中
  • 對其進行打包發布(兩種方式):
  1. 利用VS的插件Microsoft Visual Studio Installer Projects安裝程序打包插件進行打包

  2. 利用Enigma Virtual Box(單文件封裝工具) 進行打包

 一,將編譯后的exe可執行文件及其各種依賴dll、lib、圖標、配置文件等先打包放到一個目錄中

(1)dumpbin指令查看可執行文件的dll依賴包

在VS開發人員命令提示符(vs界面->工具->命令行->開發者命令提示)中執行dumpbin /dependents 程序路徑 :dumpbin/dependents C:\Users\WFD\Desktop\GCtest\Debug\GCtest

(2)windeployqt.exe指令自動將qt依賴包復制過來

 1️⃣先打開 Qt 的命令行(用的32位)

2️⃣使用“cd/d 路徑” 命令進入到包含.exe 文件的文件夾。

3️⃣ Qt 命令行執行 windeployqt 工具,輸入: “windeployqt ***.exe” ,就可以將qt依賴包復制到該文件夾中

(3)非Qt依賴庫的添加

要注意release版本與debug版本所需要的依賴是不一樣的,需要分別打包!!!

  •  方法一

在通過vs的dumpbin指令查詢到可執行文件的dll依賴包后,使用eyerything軟件根據位置去尋找dll文件。

下載地址:http://www.voidtools.com/

  •   方法二

如果動態庫有很多那么復制起來很麻煩(比如上面Qtcore.dll查找到很多路徑,但是不知道用哪個),可以使用window的批處理:

通過觀察程序運行時Vs輸出窗口中加載的dll庫:

  • 方法三

使用Dependency Wallker 打開***.exe 查找不存在的.dll,其中黃色的問號標識是不存在的。Dependency Wallker可以遞歸顯示可執行文件(exe)和動態庫(dll)調用的動態庫。

打開**.exe文件之后各個節點可能是展開的很亂,可以右擊任意節點選擇“折疊所有(L)”,然后再單擊根節點的加號展開就是如圖所示的樣式,這樣很清晰。
 

在全部添加完依賴庫后,點擊exe運行文件就可以本機運行了。或者將該文件夾全部發送給用戶也可運行。

那么如何只使用一個exe文件就完成程序的運行呢?

🙄這就要用到下面要說的打包和發布了。

 二,利用VS的插件Microsoft Visual Studio Installer Projects安裝程序打包插件進行打包

安裝過程不再詳述參見:Installer Projects插件的安裝

 (1)新建安裝項目

解決方案->新建項目->setup project

  進入文件系統:(setup1->view->文件系統)

  (2)添加文件

Application Folder->add->文件(在此添加相關的依賴資源)

 將exe所在目錄下的所有文件添加到該處

  (3)添加項目輸出

Application Folder->add->項目輸出(主程序入口)

 

對主輸出創建快捷方式,並將其拖動到User‘s Desktop內

   (4)打包發布

 對setup1項目進行重新生成,即生成安裝程序

 三,利用Enigma Virtual Box(單文件封裝工具) 進行打包

Enigma 虛擬文件打包系統可以將程序和配套文件打包成一個可執行文件,而沒有任何效率的損失,配套文件也不會被釋放至硬盤。(同時支持X86和X64二進制文件)。

如圖:

 

將生成的GCtest_boxed文件復制到要運行的設備上即可(可以單獨運行)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM