1 Windows平台上的應用程序發布
- Windows發布工具
windeployqt.exe是Qt自帶的Windows平台發布工具。windeployqt.exe文件在Qt的bin目錄下,Qt的每一個編譯器版本均有獨立的目錄,在我的計算機上安裝了minGW32,minGW64,MSVC2017 32bit,MSVC2017 64bit這四個編譯器版本。如下圖為Qt的命令行,可以看到有四個版本的編譯器。
注意:應用程序由哪個編譯器生成的,就應該用哪個版本的windeployqt生成發布文件
在Qt的命令行窗口使用windeployqt程序,其語法如下:
windeployqt [options] [files]
其中options是一些選項設置,一般使用缺省設置即可,files是需要生成發布文件的應用程序文件名。
以下為發布步驟
- 以Release的方式編譯生成exe程序。
- 生成的程序運行正常之后,找到項目的生成目錄,比如項目源碼路徑:E:\QT\MVC,它的項目生成目錄是E:\QT\MVC\build-XImageEdit-Desktop_Qt_5_12_2_MinGW_32_bit-Release,進入這個文件夾,再進入它的子文件夾 release 里面,找到XImageEdit.exe,
- 將這個exe復制到一個新的單獨的文件夾里用於發布,比如存到 E:\QT\hello 文件夾里面。
- 然后從開始菜單打開 Qt 命令行,輸入命令 :cd /d E:\QT\hello 然后使用 windeployqt 工具命令:windeployqt XImageEdit.exe
- 然后可以在 E:\QT\hello 文件夾里看到 windeployqt 工具自動復制的插件文件夾和dll文件,qm文件。這時候得到的就完整的 exe 程序發布集合,依賴關系都解決好了。把E:\QT\hello文件夾打包就可以發布了,不用自己一個個找dll文件了。E:\QT\hello文件夾里的qm文件是多國語言翻譯文件,不需要可以刪了,其他的都保留。
注意
- 即便在開發應用程序的計算機上測試發布程序沒有問題,也應該將發布文件目錄復制到一個沒有安裝Qt的計算機上測試應用程序是否能正常運行。
- 如果使用MSVC編譯的,一般是需要包含Visual C++的運行庫,我使用MSVC編譯發布的程序,在一台沒有安裝Qt和VS的電腦上做實驗,使用MSVC編譯發布的程序不能正常運行,提示缺少一些.dll庫,而MinGW編譯發布的程序是可以正常運行的。