QT的代码编译没错,但是debug模式下会异常终止,在release模式下就没问题,请问是什么情况

2020-10-15 科技 272阅读

qt代码在release模式下编译之后,会偶先题目所述现象,但是debug模式下确没事,单独运行release文件夹中的exe也可以,唯独在qtcreator中运行时不行,百度之后的答案基本是环境问题,巴拉巴拉,但是他也没说具体是什么环境问题,这叫我怎么排查?!

不过就在刚刚我又出现了这个问题,这种问题一般出现在如下情况:

1、添加一些新的模块或代码中需要新的qt的dll库等;

2、把别人的代码拉倒本地后再编译(别人的库包括上一条所述的内容);

qt的release模式是需要单独去寻找dll或相关链接库的,如果它自己找不到,就会爆出标题所述的内容,此时你可以检查你的环境(但是就像我之前说的,我也不知道我要检查什么环境!),另外一种有效的做法就是呢:

安装qt后会随着按照一个命令行工具(和windows自带的CMD类似),叫做 Qt 5.7 for Desktop (MinGW 5.3.0 32bit),在开始目录里打开这个工具,如下图:


在命令行中进入到,编译后的exe存放的目录中,然后输入命令:

windeployqt xxx.exe

其中xxx.exe就是你生成的exe名称,这条命令会把exe相关的内容解析出来,你会在文件夹中看到很多qt的相关dll,这些都是依赖性,有了这些依赖项之后,再返回运行qt creator就能成功运行啦~~~~

当然了,这种方式也适用于对应用打包,把exe单独放到一个文件夹,运行上述命令,这个文件夹就可以在没有qt的环境的电脑中运行了。

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com