D:Program Files (x86)sogoupinyin7.2.0.2991程序异常结束。Qt

D:Program Files (x86)sogoupinyin7.2.0.2991程序异常结束。Qt,第1张

这个错误没碰到过,检查下你的程序是不是交叉编译过的,确定是使用的arm-linux-gcc而不是gcc,编译后的程序在x86-linux上是无法直接运行的,要使用qvfb才可以看运行效果。

revKey[i] = fgetc(fp) ^ recvBuffer[i];//将接收到的加密文件与mactxt文件中的密钥进行异或解密

这里 你没有判断revKey的长度是否小于i的值,可能造成了内存溢出引起了

添加一句 if(i >= revKeylength()) break; 试试看有没有错误

其实也比较简单,在主线程中调用delete A(这里A是class A new出来的一个对象),然后在calss A的析构函数里执行如下代码:

m_threadrequestInterruption();

m_threadquit();

//m_threadwait();

requestInterruption()按照字面意思是请求中断,这样就可以从阻塞的地方暂时跑出来,然后执行quit来结束这个线程。注意,不要在后面使用wait(),这样的话也会再次被阻塞。

这样的话,在程序退出时,虽然会提示程序异常结束,但是那个阻塞的子线程的确也结束掉了。所以,我将该方法命名为不优雅退出阻塞线程法。

64位的Win8应该能兼容32位的应用,建议直接下带MinGW编译套件和OpenGL库的Qt SDK,省去环境配置的麻烦:

>

三种办法:1把项目生成的debug文件夹删掉,重新调试

2虽i然是crashed,但是已经生成可执行文件了,所以在exe所在文件夹中,启动exe,按照提示补全动态库,再在Qtcreator中debug就不会crashed了

3其实在上一个办法中就已经说明是debug时找不到库,试试把Qt库加入系统路径中吧。

PS 发现其实只要在mingw 的bin中加入Qt5cored就永久解决这个问题了

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

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

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

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

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

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

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

windeployqt xxxexe

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

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

以上就是关于D:\Program Files (x86)\sogoupinyin\7.2.0.2991\程序异常结束。Qt全部的内容,包括:D:\Program Files (x86)\sogoupinyin\7.2.0.2991\程序异常结束。Qt、qt接收数据问题,为什么运行时会卡住,关闭时显示结束程序,代码如下,很急,求大神解答、qt主进程阻塞子线程也不运行了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9693237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存