QtDebug和打包的可执行文件(*.exe)无法运行,提示应用程序无法正常启动0xc000007b
这是缺少Qt的动态链接文件(.dll
)导致的,如Qt5Core.dll等库文件,“DLL的全称是Dynamic Link Library,中文叫做“动态链接文件
”,在Windows操作系统中,DLL对于程序执行是非常重要的,因为程序在执行的时候,必须链接到DLL文件,才能够正确地运行
。”如下图的dlll文件所示
既然缺少了,那就把相应的动态链接文件
放到可执行文件(.exe)目录
就行了,但是这个要知道缺少的动态链接文件是什么才行,而且每次新建一个工程都得找一次,可能每个工程的动态链接文件都不一样,所以不推荐
。
我们把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)
可以运行了
一般情况下,到这步就没有问题了
如下图所示,这个动态链接库,是自己加进去的链接库路径
,不是Qt自动生成的
这时候可能即使执行了上述的操作,将bin目录路径放到系统变量当中,双击也不能运行相应的Debug和打包的可执行文件(*.exe)
这时该怎么办呢?
既然缺少了,那就把相应的动态链接文件
放到可执行文件(.exe)目录
就行了,但是这个要知道缺少的动态链接文件是什么才行,一般是缺少了链接库中的lib模块.dll
文件,如我导入的是protobuf
模块,所以缺少的是libprotobuf.dll
文件,把它复制到可执行文件(.exe)目录
就行了,进如果要打包发布在其它电脑上用的话,就要用这种方法了,否则别人的电脑没有这个链接库,是无法运行的
。
将链接库所在路径
放在系统环境变量中,相当于让电脑自动搜索可执行文件所需要的库文件,它不会自动复制一份到可执行目录中,这种方法不适合打包发布
,给其他电脑用,因为其他电脑没有这个库文件,是无法执行的,如果要打包发布,用第一种解决方法
做IT行也总会遇到很多问题,都是自己摸索出来的,经历过了下次就领悟了,这篇文章对你有帮助的点个赞
支持一下哦!