QT Debug版本和Release版本的区别

所以,为了方便调试,很多人习惯开篇就Debug,稍不留意,后面想生成一个Release版本的时候,就会发现各种问题。

编译不通过啦,功能不正常啦什么的。

最好的办法还真的就是从头开始就运行Release版本的,修改一部分记得看看运行正常不正常。总有一些坑爹的小问题,让你找破脑袋也找不到。真的烦。

特别是接手别人的工作,活着不好吗要用Debug版本,我就不吐槽debug版本的库到底多大了,上传个文件到服务器要花你好长时间,破公司还非得要你上传可以执行的文件,还不能只传源码。这还不是最主要的问题,最主要的是,要你把Debug版本重新编译成Release版本。。。。。。

 

今天修改代码,打包软件时发现调用的一个封装好的执行文件,打的Debug包。。。。打个包,接近700M。不得已重新编译Release版本,不出所料,功能不正常了。是一个很简单的串口通信。原来的代码,用的还不是Qt5自带的SerialPort类,这些都不管,下面是原来的代码

对 就这么简单的代码。debug版本正常工作,一切OK,Release版本不工作了,这个函数数据串口发不出去啦!!!

七找八找,妈的 ,bB这个变量没有初始化,没有初始化!!!全文没有初始话,然后,根本不调用发送的方法。无奈,我添加了bB变量初始化,为FALSE,然后就正常工作了。

所以说,Debug版本会帮你做一些类似初始化的这些工作,Release不会。所以在工程中,稍不留意,就会遗留这些问题导致程序运行不正常。好在修改的这个只是一个简单的串口程序,如果是较大 的程序,还不知道需要花多少时间来解决。

 

所以啊,大家一定要养成好的习惯啊 ,实时运行啊 当前,大牛们除外的。再者,该注意的细节还是要多注意。

void Dll_THS::uartSend(QString s,bool isHex)
{   
    if(bB==false)
    {
        bB=true;
        QByteArray hexdata;
        if(isHex)
        {
            String2Hex(s,hexdata); 
            Com->write(hexdata); 
        }
        else
        {
            s+="\r\n";
            Com->write(s.toLatin1());
        }
        bB=false;
    }
}

     

  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值