Qt双击运行Debug和release模式下生成的可执行文件(.exe),提示应用程序无法正常启动0xc000007b

1.出现的问题,如下图所示

Qt双击运行Debug和release模式下生成的可执行文件(.exe),提示应用程序无法正常启动0xc000007b。请单击"确定"关闭应用程序。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 分析

这是缺少Qt的动态链接文件(.dll)导致的,如Qt5Core.dll等库文件,“DLL的全称是Dynamic Link Library,中文叫做“动态链接文件”,在Windows操作系统或者linux系统中,库文件对于程序执行是非常重要的,因为程序在执行的时候,会依赖到很多Qt库,必须链接到库文件,才能够运行。”windows下库文件如下图的所示
在这里插入图片描述

3.怎么解决呢?

3.1第一种方法(不推荐)

既然缺少了,那就把相应的动态链接文件放到可执行文件(.exe)目录就行了,但是这个要知道缺少的动态链接文件是什么才行,而且每次新建一个工程都得找一次,可能每个工程的动态链接文件都不一样,所以不推荐

3.2 第二种方法(推荐)

我们把Qt安装目录下的bin目录路径放到系统变量当中就行了
原理就是:bin目录下的文件中肯定会有相应的动态链接文件的,qt执行Debug和release模式的生成的可执行程序时会自动在系统变量中指定的目录下寻找响应的文件,相当于第一种方法,只不过是qt去指定的环境变量中自动寻找所需要的的动态链接库文件。
我们的编译分为32位和64位的,Qt下的编译器一般是mingw73_32mingw73_64,MSVC(Microsoft Visual C/C++)编译器是window下的集成开发编译器,像我的这个msvc2017_64就是vs2017的编译器,是qt结合vs中开发用的,如下图所示在这里插入图片描述
要把相应的编译器下的bin目录放在系统变量中,怎么看我们的工程是用的什么编译器呢?看下图就行了,如图所示的工程用的是32位的编译器
在这里插入图片描述
然后复制路径,放在系统变量path中,打开电脑的属性,操作如下图所示,建议把32位和64位编译器下的bin目录下的路径都放在系统变量路径中
在这里插入图片描述
在这里插入图片描述
点击确定,确定…,然后就双击相应的可执行文件(*.exe)可以运行了
一般情况下,到这步就没有问题了

4.特殊情况,有使用Qt外其他的动态链接库

如下图所示,这个protobuf动态链接库,是我自己编译加进去的链接库,程序中需要用到,不是Qt自带的
这时候即使执行了上述的操作,将bin目录路径放到系统变量当中,双击也不能运行Debug和release模式的生成的可执行程序(*.exe)
在这里插入图片描述
这时该怎么办呢?

4.1第一种解决方法

既然缺少了,那就把相应的动态链接文件放到可执行文件(.exe)目录就行了,但是这个要知道缺少的动态链接文件是什么才行,一般是缺少了链接库中的lib模块.dll文件,如我导入的是protobuf模块,所以缺少的是libprotobuf.dll文件,把它复制到可执行文件(.exe)目录就行了,进如果要打包发布在其它电脑上用的话,就要用这种方法了,否则别人的电脑没有这个链接库,是无法运行的
在这里插入图片描述

4.1第二种解决方法

链接库所在路径放在系统环境变量中,相当于让电脑自动搜索可执行文件所需要的库文件,它不会自动复制一份到可执行目录中,这种方法不适合打包发布,给其他电脑用,因为其他电脑没有这个库文件,是无法执行的,如果要打包发布,用第一种解决方法
在这里插入图片描述
做IT行业也总会遇到很多问题,都是自己摸索出来的,经历过了下次就领悟了,这篇文章对你有帮助的点个赞支持一下哦!在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 16
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值