从这里开始:http://google-glog.googlecode.com/svn/trunk/doc/glog.html
调试模式支持
特殊的“调试模式”日志宏仅在调试模式下有效,并在非调试模式编译时被编译为无效代码。
关于 C++ 程序,“调试模式”指什么?
当我们在使用 GDB 调试程序时,能否说程序处于调试模式?
从这里开始:http://google-glog.googlecode.com/svn/trunk/doc/glog.html
调试模式支持
特殊的“调试模式”日志宏仅在调试模式下有效,并在非调试模式编译时被编译为无效代码。
关于 C++ 程序,“调试模式”指什么?
当我们在使用 GDB 调试程序时,能否说程序处于调试模式?
NDEBUG
宏的情况下进行编译。从您提供的页面中(重点在于我):C++程序(与C类似)通常基于预处理器宏具有不同的构建配置,这些宏可以从命令行传递。
规范的调试模式标志是宏NDEBUG
,如果定义了该宏,则表示您不处于调试模式。 (它可能更清晰地命名为PRODUCTION
,但遗憾的是它是根据其非而命名的。)
NDEBUG
是标准且古老的。 它由<cassert>
头文件使用,该头文件在C中称为<assert.h>
。 其官方功能是将assert
宏变成无操作,但它还通常影响C ++标准库以检查边界和要求。
例如,g++ -DNDEBUG myProg.cpp -o myProg
应该编译而不涉及与调试相关的运行时特性。
请注意,这与产生符号支持的调试器不同,后者由GCC上的-g
或其他平台的其他标志控制。
NDEBUG
。 - James Kanze