Qt打包程序,debug版运行正常,release版异常

记录一下一个很坑的问题:qt编译程序,打包了debug版和release版。然后在自己电脑上运行功能都是正常跑,但是呢,丢到另一台电脑,同样的某个功能发现debug版正常运行,而release版该功能异常崩溃。

检查多次,比如可能影响的原因:少带了文件,相关库文件版本不同,或者是不同电脑环境变量不同。结果发现都不是造成该问题的原因。

有人说可能是release版和debug版,对于一些指针未初始化的容忍程度不同。可能一个指针变量没初始化,在debug环境能够正常过,但在release下就不行。但是因为改动的代码距离上个版本相差太多,本人也不确定是否是这个原因,并且也没有其他好的方法去定位问题出在何处。一时间不知道该咋办。

后面想着先检查其他功能是否有相同的情况,就在界面上各功能处点来点去,结果点回之前异常的功能,发现又正常了。这会就意识到可能是前面点的某个功能给此异常功能带来了影响。然后通过检查代码,果真是有个指针没初始化,就在异常的功能里面使用了,而另一个功能则有对该指针使用new对其进行初始化,所以之后再到异常那边去就正常了。



果然对于一些牵扯到关系的地方,指针还真是得及时进行初始化,不然不初始化,野指针,在别的地方就是使用前进行是否为nullptr判断也不管用。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值