Qt debug模式下程序崩溃 release 运行良好

在Qt5.12,MSVC2017的环境下,在debug条件下运行程序发生崩溃,而在release的情况下运行良好,这是比较反常的事。一般在debug的情况运行正常的,而在release下会不正常,因为release会优化程序,比如在debug下帮助初始化,而release不一定会。

后来分析程序发现在对象内部删除自己(delete this),之后由引用该指针,所以会崩溃。那么为什么release版本下不会崩溃呢?查找资料后发现,对象内部删除自己(delete this)不一定会导致崩溃,虽然大概率会出问题,可能因为debug和release处理方式不一样导致出现不同结果

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
出现这种情况通常是由于在Release模式下缺少依赖项或者编译参数设置不正确导致的。 首先,需要确保在编译Release版本之前,已经正确地配置了构建选项。在Qt Creator中,可使用"Build"菜单下的"Build Configuration"来选择"Release"模式,并确保项目配置文件(.pro文件)中没有指定只支持Debug模式。 其次,如果在Release模式下出现缺少依赖项的错误,需要仔细检查是否在Release模式下正确设置了相关的编译参数,例如正确添加了链接库路径、添加了需要链接的库文件等。还需要检查编译选项是否正确设置,例如启用了所需的优化选项或禁用了调试相关选项。 此外,有时候在使用第三方库时,可能会遇到库文件仅针对Debug模式编译的情况。在这种情况下,需要找到相应的Release版本的库文件,并进行相关的配置,确保编译器能够正确链接到该库。 最后,如果上述方法仍然无法解决问题,可能需要深入调试代码来找出具体原因。可以使用Qt Creator提供的调试工具,例如断点、日志输出等,来逐步追踪代码执行过程,查找可能存在的问题。同时,也可以尝试在代码中添加一些调试信息,以便更好地理解代码运行时的状态和流程。 总之,解决Qt Release模式下无法运行的问题通常需要仔细检查配置、编译参数和依赖项等方面的设置,并进行逐个排查可能存在的问题,以找到具体的解决方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值