在大型C ++ / Qt / QMake / qtcreator项目中,我想执行一些测试,但只有在我使用调试标志进行编译时。
有没有办法告诉g ++代码的一些小部分只能在调试模式下编译?
答案 0 :(得分:4)
执行此操作的标准方法是依赖于NDEBUG
中定义的宏assert()
所使用的宏<cassert>
:
#ifdef NDEBUG
// release mode code
#else
// debug mode code
#endif
#ifdef
的反面是#ifndef
,当然#else
分支是可选的。
如果此宏无效(无论出于何种原因),您
可以尝试使用宏QT_NO_DEBUG
,Qt用于与Q_ASSERT()
类似的目的;以及
应该修复它,以便正确定义NDEBUG
(un); <cassert>
正常工作所需,您使用的代码可能依赖于此。