如何在windows下發布QT應用程式(qt專案打包)

taohuaxiaochunfeng發表於2024-04-02

1、簡述

在Qt的使用過程中,我們會發現Qt的的執行檔案在Qt的IDE中是可以直接Build出來並執行產生效果的,但是如果直接在編譯資料夾下找到該執行檔案執行或是要提供給第三方人員使用的時候,執行檔案卻不能直接使用,會有各式各樣的庫檔案缺失等問題,以下是Qt在Windows環境下的執行檔案打包流程。

2、流程

找到qt安裝目錄中編輯器bin下的windepolyqt.exe的可執行檔案,這是一個官方提供的應用部署工具,可以很方便的將所有應用程式需要的庫、qml等包含進應用目錄下,基本用法如下:

1、將你的QTy應用從Release或Debug中拷出來到單獨的一個資料夾,務必將你在程式中呼叫的自己寫的DLL檔案一併拷過去;

2、Ctrl+R 開啟執行,輸入CMD,開啟命令列;

3、鍵入windeployqt.exe的絕對路徑,留個空格,鍵入你複製的應用程式的目錄,然後確認就可以了。

D:\ruanjiananzhuang\Qt\anzhuangweizhi\5.14.2\msvc2017_64\bin\windeployqt.exe  D:\Qt\3.26\taishi\build-taishi-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\debug\taishi.exe

結果圖:

3、 qt打包釋出程式,解決找不到msvcp140.dll等動態庫問題

MSVC編譯器編寫的程式就會遇到以上VC執行庫缺失的問題。

也就是說,在打包的過程中,只是把Qt的相關動態庫部署好了,但是VS (或者VC)的執行環境並沒有部署。

所以為了杜絕隱患,應該重視這兩個警告。那麼如何解決呢

解決方案就是新增一個VS的環境變數。

首先,找到VS的安裝目錄,比如我的是預設安裝在C盤。複製路徑C:\Program Files\Microsoft Visual Studio\2022\Community\VC

開啟環境變數,新增一個系統變數,變數名為VCINSTALLDIR,變數值為C:\Program Files\Microsoft Visual Studio\2022\Community\VC

然後重新開啟Qt的命令列,執行

D:\ruanjiananzhuang\Qt\anzhuangweizhi\5.14.2\msvc2017_64\bin\windeployqt.exe  D:\Qt\3.26\taishi\build-taishi-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\debug\taishi.exe

輸出裡增加了一些VC的動態庫。這就說明,我們打包的同時,已經把VC的環境帶上了。

4、打包時找不到ucrbased.dll

ucrtbased.dll是一個動態連結庫(DLL)檔案,它是Microsoft Universal C Runtime Library的一部分,是Windows作業系統中不可或缺的關鍵元件。

現在一下路徑下查詢ucrbased.dll檔案是否存在。

C:\\Windows\System32\是否存在,如果有,直接複製該檔案到原來的打包檔案中即可。

如果不存在,則需要網上下載最新版本即可,這裡就不介紹怎麼下載了。

相關文章