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

 我来答
DoramiHe
2018-06-19 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59543
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部

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的环境的电脑中运行了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式