VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll

项目场景:

使用VS和Qt开发完应用程序之后,需要拷贝到其他地方使用,通过windeployqt自动提取所需的文件。


问题描述:

生成的应用程序是64位Release版本,参照各种通过windeployqt自动提取所需文件的方法,提取出的文件却是Debug版本的dll
VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll
VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll


原因分析:

是系统环境变量配置导致。
我的电脑上安装了Qt的三个编译器:
VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll

但是在系统环境变量中,mingw53_32编译器的bin路径在msvc2013_64编译器的前面:
VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll
因此在命令行使用的windeployqt实际是mingw53_32的bin目录下的windeployqt.exe,与exe的版本不匹配,从而导致文件复制出错。


解决方案:

  1. 方法1:将需要使用的编译器对应的bin目录放到系统环境变量的最前面,比如我需要使用msvc2013_64的编译器,需要将路径:D:\QT\5.9\msvc2013_64\bin放到最前面:VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll
    VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll
    VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll

  2. 方法2:在命令提示符人为进入windeployqt所在路径,比如我需要使用msvc2013_64的编译器,需要先进入D:\QT\5.9\msvc2013_64\bin,再执行windeployqt命令:
    VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll
    VS+Qt应用开发-问题记录-使用windeployqt发布Release版本却生成Debug版本的dll

上述两种方法任选其一即可。