Qt是否提供(保证)调试定义?

Sam*_*mer 38 debugging qt definition

有没有人知道官方支持的方式在Qt中包含仅调试版本的代码?例如:

#ifdef QT_DEBUG
// do something
#endif
Run Code Online (Sandbox Code Playgroud)

基本上像Q_ASSERT但是对于更复杂的测试.

我似乎无法找到任何说明Qt框架保证定义调试宏的文档.如果没有,那么实施这个功能项目的合理非正式方法是什么?

laa*_*lto 49

Qt定义QT_NO_DEBUG了发布版本.否则QT_DEBUG定义.

当然,您可以自由地DEFINES在.pro文件中指定任何内容,并将它们用于debug或者release.


eSK*_*Kon 17

另一种方法是在项目文件中写入如下内容:

debug {
  DEFINES += MYPREFIX_DEBUG
}
release {
  DEFINES += MYPREFIX_RELEASE
}
Run Code Online (Sandbox Code Playgroud)

那么你将不依赖于Qt内部定义.


S.M*_*avi 6

检查调试模式:

#ifdef QT_DEBUG
    //Some codes
#endif
Run Code Online (Sandbox Code Playgroud)

对于支票发放模式:

#ifndef QT_DEBUG    //<== Please note... if not defined
    //Some codes
#endif
Run Code Online (Sandbox Code Playgroud)