天天看點

windows下動态釋出QT程式

Qt 官方開發環境使用的動态連結庫方式,在釋出生成的exe程式時,需要複制一大堆 dll,

如果自己去複制dll,很可能缺少幾個檔案,導緻exe在别的電腦裡無法正常運作。

是以 Qt 官方開發環境裡自帶了一個工具:windeployqt.exe。

windeployqt 工具可以自動複制,插件檔案夾和 dll檔案、qm檔案。可以得到完整的 exe 程式釋出集合,解決所有的依賴關系。

筆者的開發環境:Qt 5.5.0+VS2010

一、Qt Widgets Application可執行程式釋出方式

首先用 QtCreator 建立一個 Qt Widgets Application 項目,項目名字假定是 QT_1。

然後以 Release 方式編譯生成 exe 程式:

1、編譯工程

圖1 選擇建構程式為-釋出版本(release)

圖2 編譯成功後,會在工程路徑release目錄下生成xx.exe檔案。

圖3 生成的.exe檔案

将這個生成的QT_1.exe檔案拷貝至新的檔案夾。

比如建立一個QT_release的檔案夾,将QT_1.exe拷貝至QT_release檔案夾,等待釋出。

圖4

2、運作windeployqt工具,釋出軟體

Windeployqt工具在什麼地方?

答:在QT軟體安裝的bin目錄下。

筆者的Windeployqt工具路徑:D:\Qt\Qt5.5.0\5.5\msvc2010\bin

如圖所示:

圖5

Windeployqt工具需要在DOS指令行運作,是以需要将Windeployqt工具路徑添加到系統的環境變量裡。

添加環境變量步驟:以win8為例

我的電腦–>屬性—>進階系統設定—>環境變量

環境變量之間需要以分号隔開。

圖6添加環境變量步驟

環境變量添加成功後生效的方法:

1、重新開機電腦生效

2、在DOS指令行輸入set pata=xxx,關閉DOS視窗

(在DOS下設定環境變量,不會影響系統設定的環境變量,DOS下的設定環境變量隻是一個臨時變量,在DOS下設定環境變量,雖然不會影響系統設定的環境變量,但是會觸發系統設定的環境變量更新,這正是我們所需要的結果)

3、啟動DOS指令視窗,列印出環境,看路徑是否生效。(echo %path%)

如果環境變量沒有及時生效,又不想重新開機電腦,可以設定臨時的環境變量。

如圖:

設定好環境變量之後,接下來就準備運作打包軟體。

打包步驟

1、通過指令進入剛才存放QT_1.exe的檔案夾裡。

cd /d D:\QT_XX\QT_release

2、運作Windeployqt工具自動打包

在存放QT_1.exe的目錄運作D:\QT_XX\QT_release>Windeployqt QT_1.exe 即可自動尋找依賴檔案。

圖7 自動查找依賴項

4、打包結束後,在存放QT_1.exe檔案的目錄下會出現很多dll等庫檔案。這些檔案是QT軟體運作時需要依賴的檔案。

圖8

5、将此檔案夾打包發給其他電腦,在其他電腦解壓輕按兩下xxx.exe即可運作。

二、Qt Quick Application釋出方式

首先用 QtCreator 建立一個 Qt Quick Application 項目,項目名字假定是 QML_1。

然後以 Release 方式編譯生成 exe 程式。

步驟與上面Qt Widgets Application釋出方式基本一樣。

唯一不同是最後執行的指令:

windeployqt QML_1.exe –qmldir D:\Qt\Qt5.5.0\5.5\msvc2010\qml

路徑D:\Qt\Qt5.5.0\5.5\msvc2010\qml 需要根據自己QT的安裝路徑決定。

繼續閱讀