工具:電腦必備、QT下的windeployqt
Qt 官方開發環境使用的動态連結庫方式,在釋出生成的exe程式時,需要複制一大堆 dll,如果自己去複制dll,很可能丢三落四,導緻exe在别的電腦裡無法正常運作。
是以 Qt 官方開發環境裡自帶了一個工具:windeployqt.exe。
注:在這裡以Qt 5.3.2+MinGW開發環境為例,(其他版本類同)
在開始菜單中找到Qt 5.3 for Desktop (MinGW 4.8 32 bit)

這裡可以打開 Qt 指令行,從這裡就可以執行 windeployqt 工具。
內建開發環境 QtCreator 目前生成圖形界面程式 exe 大緻可以分為兩類:
Qt Widgets Application 和 Qt Quick Application。
下面分别介紹這兩類exe 的釋出方式。
Qt Widgets Application可執行程式釋出方式:
首先用 QtCreator 建立一個 Qt Widgets Application 項目,直接用預設的 QMainWindow 程式就可以了,項目名字假定是 hellomw。
然後以 Release 方式編譯生成 exe 程式:
1、 生成的程式運作正常之後,找到項目的生成目錄,比如 項目源碼路徑:
E:\QT_Data\Clx\05\Clx_ImageProcessor\
它的項目生成目錄是
E:\QT_Data\Clx\05\build-Clx_ImageProcessor-Desktop_Qt_5_3_MinGW_32bit-Release\
進入這個檔案夾,在進入它的子檔案夾
release 裡面,找到 Clx_ImageProcessor.exe ,
将這個exe 複制到一個新的單獨的檔案夾裡用于釋出,比如存到
E:\Clx\fb\ 檔案夾裡面。
然後從開始菜單打開 Qt 指令行,輸入指令 :cd /d E:\Clx\fb\
然後使用
windeployqt 工具指令:
windeployqt Clx_ImageProcessor.exe
然後可以在 E: \Clx\fb\ 檔案夾裡看到 windeployqt 工具自動複制的插件檔案夾
和 dll檔案、qm檔案。這時候得到的就完整的 exe 程式釋出集合,依賴關系都解決好了。
把 E: \Clx\fb\ 檔案夾 打包就可以釋出了,不用自己一個個找 dll 檔案了。
E: \Clx\fb\
檔案夾裡的qm檔案是多國語言翻譯檔案,不需要可以删了,
其他的都保留。
2、Qt Quick Application釋出方式
首先用 QtCreator 建立一個 Qt Quick Application 項目,直接用預設的項目模版,點選下一步生成項目,項目名字假定是 helloqml。
進入這個檔案夾,在進入它的子檔案夾 release 裡面,找到 Clx_ImageProcessor.exe ,将這個exe 複制到一個新的單獨的檔案夾裡用于釋出,比如存到 E:\Clx\fb\ 檔案夾裡面。
然後從開始菜單打開 Qt
指令行,輸入指令 :cd /d E:\Clx\fb\
windeployqt Clx_ImageProcessor.exe --qmldir C:\Qt\Qt5.3.2\5.3\mingw482_32\qml
(注:這是一行代碼沒有換行)
注意不要跟燒包一樣照抄上條指令,--qmldir
是指出 Qt 庫裡面的 qml 檔案夾位置,
上面指令裡
C:\Qt\Qt5.3.2 是 Qt
官方開發環境安裝的檔案夾,
C:\Qt\Qt5.3.2 \5.3\mingw482_32 是Qt類庫的目錄(QTDIR),
是以使用的 --qmldir 後面寫的是 C:\Qt\Qt5.3.2\5.3\mingw482_32\qml
讀者Qt環境安裝路徑不一樣,要根據實際情況修改!
然後可以看到 E:\Clx\fb\ 檔案夾裡有一大堆檔案,就是 QtQuick程式需要的依賴檔案。
将整個 E:\Clx\fb\ 檔案夾 打包就可以釋出出去,在别的電腦上使用。這個 E:\Clx\fb\ 檔案夾裡的東西很多,看不懂就不要删,老老實實打包釋出就行了。
上面是最簡單的程式釋出,實際複雜程式可能還帶一些圖檔檔案、資料庫檔案、配置檔案之類的,可以按自己需要添加這些檔案到釋出檔案夾裡面。