天天看點

Qt官方開發環境生成的exe釋出方式--使用windeployqt

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

如果自己去複制dll,很可能丢三落四,導緻exe在别的電腦裡無法正常運作。

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

以官方 Qt 5.4.0+MinGW 開發環境為例,

從開始菜單--》Qt 5.4.0--》5.4--》MinGW 4.9 (32-bit)--》Qt 5.4 for Desktop (MinGW 4.9 32 bit),可以打開 Qt 指令行,從這裡就可以執行 windeployqt 工具。

內建開發環境 QtCreator 目前生成圖形界面程式 exe 大緻可以分為兩類:

Qt Widgets Application 和 Qt Quick Application。

下面分别介紹這兩類exe 的釋出方式。

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

首先用 QtCreator 建立一個 Qt Widgets Application 項目,直接用預設的 QMainWindow 程式就可以了,項目名字假定是 hellomw。

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

Qt官方開發環境生成的exe釋出方式--使用windeployqt

生成的程式運作正常之後,找到項目的生成目錄,比如 項目源碼路徑:

C:\QtPros\hellomw\

它的項目生成目錄是

C:\QtPros\build-hellomw-Desktop_Qt_5_4_0_MinGW_32bit-Release\

進入這個檔案夾,在進入它的子檔案夾 release 裡面,找到 hellomw.exe ,

将這個exe 複制到一個新的單獨的檔案夾裡用于釋出,比如存到 

D:\hellomw\ 檔案夾裡面。

然後從開始菜單打開 Qt 指令行,輸入指令 :

cd /d D:\hellomw

然後使用 windeployqt 工具指令:

windeployqt hellomw.exe

Qt官方開發環境生成的exe釋出方式--使用windeployqt

然後可以在 D:\hellomw 檔案夾裡看到 windeployqt 工具自動複制的插件檔案夾

和 dll檔案、qm檔案。這時候得到的就完整的 exe 程式釋出集合,依賴關系都解決好了。

Qt官方開發環境生成的exe釋出方式--使用windeployqt

把 D:\hellomw 檔案夾 打包就可以釋出了,不用自己一個個找 dll 檔案了。

D:\hellomw 檔案夾裡的qm檔案是多國語言翻譯檔案,不需要可以删了,

其他的都保留。

2、Qt Quick Application釋出方式

首先用 QtCreator 建立一個 Qt Quick Application 項目,直接用預設的項目模版,點選下一步生成項目,項目名字假定是 helloqml。

Qt官方開發環境生成的exe釋出方式--使用windeployqt

然後找到項目的建構目錄,比如項目源碼目錄 C:\QtPros\helloqml,

它的建構目錄是:

C:\QtPros\build-helloqml-Desktop_Qt_5_4_0_MinGW_32bit-Release\

進入這個目錄,再進入 release 子檔案夾,找到 helloqml.exe ,

複制到一個新的單獨的檔案夾裡面,比如 D:\helloqml\ 檔案夾裡面。

然後從開始菜單打開 Qt 指令行,進入D:\helloqml\檔案夾:

cd /d D:\helloqml

windeployqt helloqml.exe --qmldir C:\Qt\Qt5.4.0\5.4\mingw491_32\qml

Qt官方開發環境生成的exe釋出方式--使用windeployqt

注意不要跟燒包一樣照抄上條指令,--qmldir 是指出 Qt 庫裡面的 qml 檔案夾位置,

上面指令裡 C:\Qt\Qt5.4.0 是 Qt 官方開發環境安裝的檔案夾,

C:\Qt\Qt5.4.0\5.4\mingw491_32 是Qt類庫的目錄(QTDIR),

是以使用的 --qmldir 後面寫的是 C:\Qt\Qt5.4.0\5.4\mingw491_32\qml 

讀者Qt環境安裝路徑不一樣,要根據實際情況修改!

然後可以看到 D:\helloqml 檔案夾裡有一大堆檔案,就是 QtQuick程式需要的依賴檔案。

将整個 D:\helloqml 檔案夾 打包就可以釋出出去,在别的電腦上使用。

Qt官方開發環境生成的exe釋出方式--使用windeployqt

這個 D:\helloqml 檔案夾裡的東西很多,看不懂就不要删,老老實實打包釋出就行了。

上面是最簡單的程式釋出,實際複雜程式可能還帶一些圖檔檔案、資料庫檔案、配置檔案之類的,可以按自己需要添加這些檔案到釋出檔案夾裡面。

http://tieba.baidu.com/p/3730103947