可执行文件无法运行,提示应用程序无法正常启动0xc000007b
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_32 和mingw73_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行也总会遇到很多问题,都是自己摸索出来的,经历过了下次就领悟了,这篇文章对你有帮助的点个赞 支持一下哦!
|