Qt工程打包發布

2021-08-10 03:22:13 字數 2117 閱讀 9355

qt程式打包發布方法(使用官方提供的windeployqt工具)

**:**:

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

以官方 qt 5.4.0+mingw 開發環境為例,windeployqt工具在 %qtdir%\qt5.4.0\5.4\mingw491_32\bin 目錄下,其中 qtdir 是 qt 的安裝目錄,是環境變數。

下面分別介紹這兩種方式建立應用的發布方式。

生成的程式執行正常之後,找到專案的生成目錄,比如 專案原始碼路徑: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

然後可以在 d:\hellomw 資料夾裡看到 windeployqt 工具自動複製的外掛程式資料夾和 dll檔案、qm檔案。這時候得到的就完整的 exe 程式發布集合,依賴關係都解決好了。

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

然後找到專案的構建目錄,比如專案原始碼目錄 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 資料夾 打包就可以發布出去,在別的電腦上使用。

這個 d:\helloqml 資料夾裡的東西很多,看不懂就不要刪,老老實實打包發布就行了。

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



qt打包發布

需要用到qt自帶工具windeployqt.exe 安裝 以qt 5.8.0為例 安裝qt opensource windows x86 mingw530 5.8.0.exe即可 構建release版本 使用qt提供的dos視窗 或者 新增環境變數 c qt qt5.8.0 5.8 mingw53 ...

Qt程式打包發布

首先用 qtcreator 新建乙個 專案,直接用預設的 qmainwindow 程式就可以了,專案名字假定是 hellomw 然後以 release 方式編譯生成 exe 程式 生成的程式執行正常之後,找到專案的生成目錄,比如 專案原始碼路徑 c qtpros hellomw 它的專案生成目錄是 ...

Qt程式打包發布

我們在開發qt專案時,難免會遇到程式打包發布的問題。有的時候我們將程式編譯生成乙個程式,放到別人的電腦上就執行不起來了。這是因為別人的電腦上沒有安裝開發環境。其實如果我們自己講生成的可執行程式包換個路徑再開啟,也許你就執行不了了。提示少了某些庫。因此就設計到打包問題。將我們的可執行程式不管發到哪個路...