Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,
如果自己去复制dll,很可能缺少几个文件,导致exe在别的电脑里无法正常运行。
因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。
windeployqt 工具可以自动复制,插件文件夹和 dll文件、qm文件。可以得到完整的 exe 程序发布集合,解决所有的依赖关系。
笔者的开发环境:Qt 5.5.0+VS2010
一、Qt Widgets Application可执行程序发布方式
首先用 QtCreator 新建一个 Qt Widgets Application 项目,项目名字假定是 QT_1。
然后以 Release 方式编译生成 exe 程序:
1、编译工程
图1 选择构建程序为-发布版本(release)
图2 编译成功后,会在工程路径release目录下生成xx.exe文件。
图3 生成的.exe文件
将这个生成的QT_1.exe文件拷贝至新的文件夹。
比如创建一个QT_release的文件夹,将QT_1.exe拷贝至QT_release文件夹,等待发布。
图4
2、运行windeployqt工具,发布软件
Windeployqt工具在什么地方?
答:在QT软件安装的bin目录下。
笔者的Windeployqt工具路径:D:\Qt\Qt5.5.0\5.5\msvc2010\bin
如图所示:
图5
Windeployqt工具需要在DOS命令行运行,所以需要将Windeployqt工具路径添加到系统的环境变量里。
添加环境变量步骤:以win8为例
我的电脑–>属性—>高级系统设置—>环境变量
环境变量之间需要以分号隔开。
图6添加环境变量步骤
环境变量添加成功后生效的方法:
1、重启电脑生效
2、在DOS命令行输入set pata=xxx,关闭DOS窗口
(在DOS下设置环境变量,不会影响系统设置的环境变量,DOS下的设置环境变量只是一个临时变量,在DOS下设置环境变量,虽然不会影响系统设置的环境变量,但是会触发系统设置的环境变量更新,这正是我们所需要的结果)
3、启动DOS命令窗口,打印出环境,看路径是否生效。(echo %path%)
如果环境变量没有及时生效,又不想重启电脑,可以设置临时的环境变量。
如图:
设置好环境变量之后,接下来就准备运行打包软件。
打包步骤
1、通过命令进入刚才存放QT_1.exe的文件夹里。
cd /d D:\QT_XX\QT_release
2、运行Windeployqt工具自动打包
在存放QT_1.exe的目录运行D:\QT_XX\QT_release>Windeployqt QT_1.exe 即可自动寻找依赖文件。
图7 自动查找依赖项
4、打包结束后,在存放QT_1.exe文件的目录下会出现很多dll等库文件。这些文件是QT软件运行时需要依赖的文件。
图8
5、将此文件夹打包发给其他电脑,在其他电脑解压双击xxx.exe即可运行。
二、Qt Quick Application发布方式
首先用 QtCreator 新建一个 Qt Quick Application 项目,项目名字假定是 QML_1。
然后以 Release 方式编译生成 exe 程序。
步骤与上面Qt Widgets Application发布方式基本一样。
唯一不同是最后执行的命令:
windeployqt QML_1.exe –qmldir D:\Qt\Qt5.5.0\5.5\msvc2010\qml
路径D:\Qt\Qt5.5.0\5.5\msvc2010\qml 需要根据自己QT的安装路径决定。