Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。
因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。
问题的提出
既然是要发布自己的程序,那么就需要,在Release中编译运行。具体方法如下图所示。
1.点击qt界面左下角的图标;
2.选择Release;
3.点击编译运行即可;
生成的程序运行正常之后,找到项目的生成目录。比如,项目源码路径:
D:\OutPutResult\QtWorkPlace\DiyName
它的项目生成目录是:
D:\OutPutResult\QtWorkPlace\build-DiyName-Desktop_Qt_5_8_0_MinGW_32bit-Release
我们可以发现,此时点击.exe文件是会出问题的,解决办法如下。
使用windeployqt工具,进行打包发布
1.首先进入上图中这个文件夹,在里面,找到 DiyName.exe,将这个.exe 复制到一个新的单独的文件夹里用于发布,比如存到 :
D:\OutFaBu 文件夹里面。
此时,这个文件只一个有刚刚从release文件夹下,复制过来的.exe文件。
2.以官方 Qt 5.8.0+MinGW 开发环境为例,
从开始菜单--》Qt 5.8.0--》5.8--》MinGW5.3.0 (32-bit)--》Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)
可以打开 Qt 命令行,从这里就可以执行 windeployqt 工具。
3.然后从开始菜单打开 Qt 命令行,输入命令 :
cd /d D:\OutFaBu
然后使用 windeployqt 工具命令:
windeployqt DiyName.exe
【注意】D:\OutFaBu和DiyName.exe都是本人自己创建和生成的文件,读者根据自己情况自行修改,切勿直接复制粘贴
4.运行完成
此时,我们可以发现在刚刚创建的新文件夹D:\OutFaBu中生成许多文件和 dll文件、qm文件,这时候得到的就完整的 exe程序发布集合,依赖关系都解决好了。此时点击DiyDame.exe文件就可完美的运行。
将整个文件夹压缩打包就可以发布了,可以给其他电脑使用,是不是很方便。