Qt Creator創建工程後,編譯出的可執行文件只能在本機運行。但我們的目標是我們寫的程序可以被更多人使用,下面分享下QT項目/QML項目如何發佈!
作者環境:Win7 + Qt5.9.0
Qt Creator直接編譯生成的.exe文件是不可以直接點擊運行的:
提示找不到庫,原因是在Qt Creator調試運行時,已經幫我們設置好環境變量,讓程序運行時可以正確找到對應的庫文件。所以我們需要做的就是加入使用到的庫相關的文件到可執行目錄下。
實現的方式也簡單,Qt Creator提供了windeployqt.exe工具幫我們實現。
Qt項目發佈操作步驟:
- 啓動Qt的命令行工具(Qt 5.9 for Desktop (MinGW 5.3.0 32 bit)):
- 點擊運行,進入命令行操作,進入bin目錄,找到windeployqt.exe:
D:\Qt\Qt5.9.0\5.9\mingw53_32>dir //列出當前目錄下所有文件
D:\Qt\Qt5.9.0\5.9\mingw53_32>cd bin //進入bin
D:\Qt\Qt5.9.0\5.9\mingw53_32\bin>dir *deploy* //列出包含指定內容的文件
2017/05/27 01:14 1,667,072 windeployqt.exe
- 上面列出windeployqt.exe,就是我們需要使用的工具,執行:
D:\Qt\Qt5.9.0\5.9\mingw53_32\bin>windeployqt.exe D:\Documents\build-TxtBinConvert-Desktop_Qt_5_9_0_MinGW_32bit-Release\release\TxtBinConvert.exe
D:\Documents\build-TxtBinConvert-Desktop_Qt_5_9_0_MinGW_32bit-Release\release\TxtBinConvert.exe 是Qt Creator編譯的可執行文件。這樣在可執行文件目錄下會生成諸多dll庫文件。
- 使用qml quick的工程,使用了上述方法,點擊.exe可執行文件依然報錯,需要加上--qmldir參數:
D:\Qt\Qt5.9.0\5.9\mingw53_32\bin>windeployqt.exe D:\Documents\build-TxtBinConvert-Desktop_Qt_5_9_0_MinGW_32bit-Release\release\TxtBinConvert.exe --qmldir E:\Qt\Qt5.9.0\Tools\QtCreator\bin\qml
使用--qmldir 指定 Qt安裝路徑中QML文件夾的位置,我的路徑是:E:\Qt\Qt5.9.0\Tools\QtCreator\bin\qml。
這樣.exe就可以直接鼠標雙擊運行,整個目錄可以打包交給其他人使用:
添加應用程序圖標
爲了顯得更加正式和方便辨認,會爲應用程序添加圖標:
- 如何添加呢?非常簡單:
把ico文件加入到工程,在.pro文件中如下一行:RC_ICONS = logo.ico (logo.ico 是logo文件的名字)
項目重新構建,運行就可以看到應用程序加上了圖標!!!圖標文件必須是ico格式
參考文章:
Qt 如何打包成.exe程序,讓別人直接運行起來
https://blog.csdn.net/LJianDong/article/details/84964795
關於Qt使用windeployqt打包exe後打不開的問題
https://blog.csdn.net/toTheUnknown/article/details/81748179
QML之添加應用程序圖標
https://blog.csdn.net/dev_linux/article/details/49902839
製作icon文件的網站:
https://www.easyicon.net/covert/