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.youkuaiyun.com/LJianDong/article/details/84964795
关于Qt使用windeployqt打包exe后打不开的问题
https://blog.youkuaiyun.com/toTheUnknown/article/details/81748179
QML之添加应用程序图标
https://blog.youkuaiyun.com/dev_linux/article/details/49902839
制作icon文件的网站:
https://www.easyicon.net/covert/