执行exe报计算机中丢失qtdll,Qt入门教程(2) 直接运行Qt生成的exe报错缺少dll文件 | 阿拉灯...

摘要

在Qt Creator中写完程序,在Qt Creator中的debug或者release状态下运行程序都是没有问题的,并且会在工程目录下生成对应的debug或者release文件夹,里面存放着生成的exe文件。一般情况下,我们可以直接双击exe文件运行程序,但是,由Qt Creator生成的exe却无法运行,报错缺少dll文件,如缺少QtCore4.dll文件等。

7ee09ec3785ccfd186e45b01416f3f46.gif

在Qt Creator中写完程序,在Qt Creator中的debug或者release状态下运行程序都是没有问题的,并且会在工程目录下生成对应的debug或者release文件夹,里面存放着生成的exe文件。一般情况下,我们可以直接双击exe文件运行程序,但是,由Qt Creator生成的exe却无法运行,报错缺少dll文件,如缺少QtCore4.dll文件等。

这是因为Qt默认情况下是动态编译的,需要dll文件才能正常运行。当我们使用Qt Creator去运行程序的时候,Qt会通过Qt Creator中的设置自动找到dll位置,如果直接打开exe,那么程序会自动去环境变量或者exe所在目录下寻找dll文件。因此,也就产生了以下几种种解决办法。

情况一:qt程序写给自己用

方法1:把缺少的dll文件拷贝到和exe文件所在目录下,这种方式不推荐,因为每次都要拷贝大量dll文件,不方便。

方法2(推荐):设置环境变量,右击“我的电脑”->”属性”->”高级系统设置”->”环境变量”

7ee09ec3785ccfd186e45b01416f3f46.gif

找到“系统变量”中的“Path”变量,点击“编辑”,“新建”一条路径,将Qt安装路径下的bin文件夹路径放进去。OK,可以运行了。

7ee09ec3785ccfd186e45b01416f3f46.gif

情况二:发布qt程序给别人用

如果你的程序要发送给别人使用,那么肯定需要将dll文件和exe打包到一起,环境变量的办法肯定不再适用。这时,采用windeployqt+Enigma Virtual Box的方法进行打包。

windeployqt是qt自带的,各个版本的qt都会带有这个工具,安装完qt后会自带该工具,当然,该工具在各个版本中的路径是不一样的,实在不行就用windows全局搜一下吧,该工具主要是将exe中涉及到的有关qt的dll提取到exe所在路径下。Enigma Virtual Box也是一个免费工具,可以去官网下载安装,这个工具主要是将exe、dll等文件打包生成一个单独的exe文件,方便程序的发布和使用。具体使用方法参照https://blog.csdn.net/windsnow1/article/details/78004265

注意事项

1、windeployqt自动提取与qt相关的dll,如果你代码中引入其他第三方库,需要自己手动添加

2、设置好vs的环境变量,否则会报错Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set.。如果你不想设置环境变量,可以采用vs自带的命令行工具”VS2013 开发人员命令提示“执行windeployqt命令。如果执行成功,会将vcredist_x86.exe拷贝到当前目录下

3、可能还是会漏掉一些包,要多在其他电脑上进行测试,运行时会提示缺少某个dll,想办法找到该dll,这个dll你自己的电脑上一般都会有,全局搜下,复制粘贴到exe所在目录下

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值