1. 程式人生 > 其它 >QT從入門到入土(八)——專案打包和釋出

QT從入門到入土(八)——專案打包和釋出

引言

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

打包一般分為兩步:

  1. 將編譯後的exe可執行檔案及其各種依賴dll、lib、圖示、配置檔案等先打包放到一個目錄中
  2. 利用VS的外掛Microsoft Visual Studio Installer Projects安裝程式打包外掛進行打包


一,將編譯後的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執行檔案就可以本機運行了。下一步就是打包釋出(即可以在未裝vs和qt機器上執行)

二,利用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專案進行重新生成,即生成安裝程式