参考一些网上资料,了解到glog通过NDEBUG宏控制是否打开调试模式,如果在编译时定义了该宏,则关闭了调试模式,相应的DLOG()等函数就不输出内容了,因为宏是在编译时展开的,所以按道理应该是在编译glog库的时候定义或不定义该宏。但实际上,通过查看Makefile,glog默认是定义了该宏的,即关闭了调试模式,可是在应用程序中调用DLOG()依然输出日志了。后来发现,是需要在应用程序编译的时候定义该宏,即CXXFLAGS += -DNDEBUG,这样就可以了。
有了该方法,平时调试就方便了,调试类的日志可以用DLOG记,编译应用程序时,发布release版的时候加上CXXFLAGS += -DNDEBUG,平时这些日志就不会输出,需要调试的时候再去掉该宏,从而发布debug版,这些日志就输出了。而glog本身无需编译两个版本。
另外,DLOG宏定义的解释可以参考https://blog.csdn.net/zx_cplusplus/article/details/21476793#comments