Qt运行后relese版本生成的.exe程序打不开

文章目录

  • 1、在系统环境变量中添加路径
  • 2、使用Qt自带的打包工具Windeployqt进行打包

1、在系统环境变量中添加路径

2、使用Qt自带的打包工具Windeployqt进行打包

注意在安装Qt5.10.0出现一下问题,如下图所示:
Qt运行后relese版本生成的.exe程序打不开_第1张图片
此时解决的最好的办法是打开正在安装的组件目录手动运行安装。

1、在系统环境变量中添加路径
当使用Qt运行后,relese版本生成的.exe程序打不开,会提示计算机丢失Qt5Core.dll的错误,通过网上查资料进行dll相关的注册,出现以下的错误:
Qt运行后relese版本生成的.exe程序打不开_第2张图片
而后我把Qt5Core.dll(我用的是mingw53_32的编译器)所在的目录添加到系统变量path中,尝试再次运行,却出现以下的错误:
Qt运行后relese版本生成的.exe程序打不开_第3张图片
出现以上的根本原因是:环境变量中找到的库的版本不兼容,一般来说最简单的解决方案就是把Qt SDK的路径放在环境变量的最前面。之前在安装的时,安装了Strawberry Perl,需要把Qt5Core.dll所在的目录添加到Strawberry Perl目录路径之前。
2、使用Qt自带的打包工具Windeployqt进行打包
另外一种解决relese版本下的.exe打不开的方法是利用Windeployqt进行打包, Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。
1)首先进入到relese下找到 Hellworld.exe,将这个.exe 复制到一个新的单独的文件夹里用于发布,比如存到 ?:\Qt Document\OutFile文件夹里面。在这里插入图片描述
此时,这个文件只一个有刚刚从release文件夹下,复制过来的.exe文件。
2)以官方 Qt 5.8.0+MinGW 开发环境为例,
从开始菜单–>Qt 5.10–>5.10.0–>MinGW5.3.0 (32-bit)–>Qt 5.10.0 for Desktop (MinGW 5.3.0 32 bit)
可以打开 Qt 命令行,从这里就可以执行 windeployqt 工具。

Qt运行后relese版本生成的.exe程序打不开_第4张图片

3)然后从开始菜单打开 Qt 命令行,输入命令 :
cd /d D:\Qt Document\OutFile
然后使用 windeployqt 工具命令:
windeployqt HelloWorld.exe
Qt运行后relese版本生成的.exe程序打不开_第5张图片
输入回车:
Qt运行后relese版本生成的.exe程序打不开_第6张图片
致此打包完毕,点击.exe程序能够正常运行。

你可能感兴趣的:(c++)