楼主最近完成了某个项目内部的一个小功能,但是该功能贯穿项目整个流程,因此在调试的过程中涉及到许多其他功能的问题,而整个项目都是在SVN版本控制下更新的,这就导致楼主需要每调试一部分代码就要上传版本并更新。
如果每次上传之前都删除自己的调试信息,更新其他同事代码后再加入自己的调试信息,过程过于繁琐,因此搜索查找了一个用于调试大型QT项目的小技巧。
首先在QT的pro文件中加入一个DEFINES宏定义
DEFINES += LIB_LTE_UL_PUCCH_TEST
然后回到源代码中,在需要添加调试信息的位置加入以下语句
#ifdef LIB_LTE_UL_PUCCH_TEST
//自己的调试信息
#else
//项目原来的流程(可删除)
#endif
这样一来,我们就可以在调试中加入自己的调试信息。
举个简单的例子,我们有一个公共变量a,调试的时候我们不通过函数生成,直接赋值。
#ifdef LIB_LTE_UL_PUCCH_TEST
a = 10; //调试直接赋值,不管生成函数对错
#else
a = _gen_a(); //注释掉LIB_LTE_UL_PUCCH_TEST后正常运行项目中的生成函数
#endif
注意:上传代码时需要在pro文件中注释掉宏定义,调试的时候再取消注释;调试全部完成后删除pro文件的宏定义,并删除源码中#ifdef相关内容。