【发布时间】:2012-02-06 18:21:26
【问题描述】:
有谁知道官方支持的在 Qt 中包含仅调试构建代码的方式?例如:
#ifdef QT_DEBUG
// do something
#endif
基本上类似于 Q_ASSERT,但用于更复杂的测试。
我似乎找不到任何说明 Qt 框架保证定义调试宏的文档。如果没有,在整个项目范围内实施此功能的非官方方法是什么?
【问题讨论】:
标签: debugging qt definition
有谁知道官方支持的在 Qt 中包含仅调试构建代码的方式?例如:
#ifdef QT_DEBUG
// do something
#endif
基本上类似于 Q_ASSERT,但用于更复杂的测试。
我似乎找不到任何说明 Qt 框架保证定义调试宏的文档。如果没有,在整个项目范围内实施此功能的非官方方法是什么?
【问题讨论】:
标签: debugging qt definition
Qt 为发布版本定义了QT_NO_DEBUG。否则 QT_DEBUG 被定义。
当然,您可以在 .pro 文件中随意指定任何 DEFINES,并将它们的范围设置为 debug 或 release。
【讨论】:
QT_NO_DEBUG 被官方支持在Qt 框架之外使用吗?
另一种方法是在您的项目文件中写入如下内容:
debug {
DEFINES += MYPREFIX_DEBUG
}
release {
DEFINES += MYPREFIX_RELEASE
}
那么你就不会依赖Qt内部定义了。
【讨论】:
检查调试模式:
#ifdef QT_DEBUG
//Some codes
#endif
查看发布模式:
#ifndef QT_DEBUG //<== Please note... if not defined
//Some codes
#endif
【讨论】: