1. 程式人生 > 其它 >QT生成可執行的EXE程式

QT生成可執行的EXE程式

Qt 官方開發環境使用的動態連結庫方式,在釋出生成的exe程式時,需要複製一大堆 dll,
如果自己去複製dll,很可能丟三落四,導致exe在別的電腦裡無法正常執行。
因此 Qt 官方開發環境裡自帶了一個工具:windeployqt.exe。

整合開發環境 QtCreator 目前生成圖形介面程式 exe 大致可以分為兩類:
Qt Widgets Application 和 Qt Quick Application。
下面分別介紹這兩類exe 的釋出方式。

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

首先用 QtCreator 新建一個 Qt Widgets Application 專案,直接用預設的 QMainWindow 程式就可以了,專案名字假定是 001_Hello。

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

生成的程式執行正常之後,找到專案的生成目錄,比如 專案原始碼路徑:
E:\002_QT_TEST\001_Hello
它的專案生成目錄是
E:\002_QT_TEST\build-001_Hello-Desktop_Qt_6_1_1_MinGW_64_bit-Release
進入這個資料夾,在進入它的子資料夾 release 裡面,找到 001_Hello.exe ,
將這個001_Hello.exe 複製到一個新的單獨的資料夾裡用於釋出,比如存到
E:\002_QT_TEST\000run資料夾裡面。

複製windeployqt.exe檔案到E:\002_QT_TEST\000run資料夾裡面。

windeployqt.exe的目錄是

E:\Qt\6.1.1\mingw81_64\bin

然後從開始選單開啟 Qt 命令列,輸入命令 :
cd /dE:\002_QT_TEST\000run
然後使用 windeployqt 工具命令:
windeployqt hellomw.exe

然後可以在 D:\hellomw 資料夾裡看到 windeployqt 工具自動複製的外掛資料夾

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

把 D:\hellomw 資料夾 打包就可以釋出了,不用自己一個個找 dll 檔案了。
D:\hellomw 資料夾裡的qm檔案是多國語言翻譯檔案,不需要可以刪了,
其他的都保留。

2、Qt Quick Application釋出方式

首先用 QtCreator 新建一個 Qt Quick Application 專案,直接用預設的專案模版,點選下一步生成專案,專案名字假定是 helloqml。然後以 Release 方式編譯生成 exe 程式:然後找到專案的構建目錄,比如專案原始碼目錄 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 工具命令:

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

注意不要跟燒包一樣照抄上條命令,--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 資料夾 打包就可以釋出出去,在別的電腦上使用。