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_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行也总会遇到很多问题,都是自己摸索出来的,经历过了下次就领悟了,这篇文章对你有帮助的点个赞
支持一下哦!
这篇关于QtDebug和打包的可执行文件(*.exe)无法运行,提示应用程序无法正常启动0xc000007b的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享