第三方库的编译有问题。
请注意,出现此种问题绝不止这一个原因,还包括其它很多原因,这些原因可能千奇百怪,需要你的开发经验去积累去发掘。在这里,根据我自己的经验,总结几种可能产生“the process was ended forcefully”错误的思路。
可能程序中存在对象只声明,未创建就使用的情况。
例如,程序中只声明了一个对象QObject * object,未进行object = new QObject就直接使用object。这样,程序编译构建是可能没有问题,但是一旦运行就会崩溃。
对于有界面的程序,可能ui未创建之前就对其中的对象进行操作。例如下面的例子,在MainWindow构造函数中,先进行了页面初始化,再创建ui类,这也会导致程序崩溃。正确的应该是,先创建ui类,再对页面对象操作及信号绑定。
注:ui页面内嵌 Qt QTableWidget 表格,表格中的 单元格需要初始化,否则,出现异常退出,可能是这个原因吧?
可能程序所需的dll库缺失。
这种情况一般是缺失系统自带的库,对于第三方库文件,因为项目中会调用接口,若缺失,在项目编译的过程中就会报错。 可能程序所用的第三方库dll编译有问题,访问存在异常。这也是我项目中遇到的问题,针对这种问题,要灵活地对代码进行调试,可以注释库的访问接口,来看程序是否可正常启动。
Qt开发: 捕获系统异常,产生dmp文件
项目 *.pro里添加:
LIBS +=-lDbugHelp
Qt下使用DbgHelp和SetUnhandledExceptionFilter来获取Crash log/dump文件
https://blog.csdn.net/dgj8300/article/details/78450755
参考:
Qt Creator中编译运行Qt项目时报“程序异常结束”错误的解决思路
https://zhuanlan.zhihu.com/p/353320725
记一次解决Qt程序异常退出问题: 丢失动态库
https://blog.csdn.net/weixin_42303052/article/details/93644758
Qt(windows下)捕获异常信息并自动重启: 弄个错误捕获,然后自动重启了。