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的安裝路徑決定。