这个问题的根本原因就是,QT中Release发布后的可执行文件.exe的运行,是要依靠一系列的依赖库的,为了更好地说明,下面就详细介绍QT应用程序的发布流程,并介绍一个方便快捷的方法。
1)启动Qt Creator ,建立一个项目,名为test。
2)以Release的方式生成.exe程序文件,如下图:
运行一边程序后,将会在项目对应的Release文件夹下面找到test.exe文件。将这个文件复制到一个单独的目录里面用于发布时,比如D:\zcb\目录中,直接点击test.exe,会发现又错误提示,提示找不到一系列的xxx.dll文件。
3)**解决办法:**在开始菜单中打开Qt命令。“开始->所有程序->Qt->Qt 6.x.x(MinGW 11.2.0 64-bit)”,如下图所示:
打开后输入命令:cd/d D:\zcb ,然后使用windeployqt工具命令继续输入:windeployqt test.exe回车之后就可以看到,在D:\zcb 目录中多了对应的插件目录和dll文件,这时候就得到了完整的.exe程序的发布集合,依赖关系也得到了解决,如图所示:
最后再双击test.exe,就可以运行了。如果把zcb目录放到一个新的环境中(没有安装Qt),test.exe也可以运行。
注意:在Qt6版本中,命令行输入:windeployqt test.exe指令回车后,最后一行会出现一个“无法访问”的提示,这个好像是Qt6的bug,亲测,在本环节中不影响使用。