QT软件开发--探讨debug和release模式的问题

本人新手程序员,开发经验不到一年,实在不知道专业点的标题改怎么写,就按照自己思路写一下遇到的问题,做一下学习笔记吧,关于debug和release模式的区别,有经验的前辈们肯定的理解的比较深入的,希望有大神来带带路,那就最好不过了。
最近刚用QT做了一个上位机软件,大概一个月的时间写完了,开开心心验证完自己的软件,就暗自搓手想要准备发布我的第一个软件了,正准备收工的时候——出问题了,第一次打包软件,发现我的exe软件运行不正常。我是按照网上的教程一步步打包出来的,不是运行错误,是运行不正常,具体表现为我的上位机不能发送报文给下位机,但是接收正常!(首先是很早就有人说过,要养成一周至少验证一次release版本的习惯,OK,受教了)。
首先我就想到了线程的问题,因为我发送报文是在新开的线程udpThread进行的,而接受就是单纯的监听固定的socket,所以没问题。因此开来是对新线程的应用出了问题。
于是我单独写了一个UDP收发的程序,分别验证了用线程发送报文的模式和不用线程发送报文的模式,果然在release模式下用线程发送报文的方式用的有问题,(在debug模式下是正常的)。
run函数是线程中运行的函数,New是在线程外运行的
可是问题来了,不可能是不能用线程吧,一定是我用的方法不对,之前我是在主界面构造函数里开启udp线程的,这下我用信号槽方式,按钮按下开启线程——咦,可以正常运行线程的run函数了。
在构造函数里运行开启线程
在槽函数里开启线程
也就是说,在构造函数里开启线程的方法有问题了,还是说可以在构造函数路运行线程,只是我用法出现的问题?
我们都知道debug模式的代码是包含了调试信息的代码,而release的代码是经过编译器优化的代码,比如QT写的代码网上找资料找原因,可是,根本原因是啥?
(待更新)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值