QtDebug和打包的可执行文件(*.exe)无法运行,提示应用程序无法正常启动0xc000007b

2021/12/5 20:47:06

本文主要是介绍QtDebug和打包的可执行文件(*.exe)无法运行,提示应用程序无法正常启动0xc000007b,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

可执行文件无法运行,提示应用程序无法正常启动0xc000007b

  • 1.出现的问题,如下图所示
  • 2. 分析
  • 3.怎么解决呢?
    • 3.1第一种方法(不推荐)
    • 3.2 第二种方法(推荐)
  • 4.特殊情况,有使用Qt外其他的动态链接库
    • 4.1第一种解决方法
    • 4.1第二种解决方法

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

QtDebug和打包的可执行文件(*.exe)无法运行,提示应用程序无法正常启动0xc000007b
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 分析

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

3.怎么解决呢?

3.1第一种方法(不推荐)

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

3.2 第二种方法(推荐)

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

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

如下图所示,这个动态链接库,是自己加进去的链接库路径,不是Qt自动生成的
这时候可能即使执行了上述的操作,将bin目录路径放到系统变量当中,双击也不能运行相应的Debug和打包的可执行文件(*.exe)
在这里插入图片描述
这时该怎么办呢?

4.1第一种解决方法

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

4.1第二种解决方法

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



这篇关于QtDebug和打包的可执行文件(*.exe)无法运行,提示应用程序无法正常启动0xc000007b的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程