glog 编译选项 -DNDEBUG

最近写C++的时候一直在使用cout,发布的时候又要注释,很麻烦,于是想看看有什么好一点的log库用用,找来找去发现还是glog(google)的好用一些,一开始使用标志符控制输出等级,实际上线的时候设置为3就行了,可是这样会拖慢代码运行速度,于是就查看有没有debug模式下的log,发现谷歌提供了DLOG(ERROR)<<"test"这样的操作,不过要设置非调试模式,看了各个博客也没人写,想着比较基础,应该是和assert的用一样,添加#define NDEBUG

  1 #include "glog/logging.h"
  2 #include "show.h"
    #define NDEBUFG
  3 int main(int argc, char **argv)
  4 {
  5     FLAGS_stderrthreshold = 2;
  6     google::InitGoogleLogging(argv[0]); // 初始化GLog库
  7     DLOG(ERROR) << "There is error !!!";
  8     show();
  9     return 0;
 10 }

发现没效果,一查发现,原来写错了,应该把宏定义放在logging.h头文件前面(眼高手低的毛病),本来以为这样就完事了,可是show函数里面的DLOG还是正常编译了,于是又去show.h中添加宏,可是总不能这么傻吧,所有文件都加不是要累成傻狗,以前用vs对于g++也不知道,于是去看编译器g++/gcc有没有参数选项,一查还真有,-DNDEBUG == #define NDEBUG, 到此舒服了,代码也可以干干净净的了。

所以学习知识还是从最原始的工具去学习,直接上集成环境会很快入门,比如最近的AI,一开始caffe, 后来tensorflow,pytorch, 到后面keras, 现在一个模型可能几行就结束了, 但是如果自己没有探索精神,学到的技术一直飘在上面,很多人甚至不知道算法实现细节,卷积底层c/c++的实现方式,反向传播如何自己实现,内存的处理,数学库的使用等等,遇到报错网上没有解决方案就重新装系统或者开发环境,讲真技术做到这样还是不行的, 毕竟世之奇伟,瑰怪,非常之观,常在于险远。

  1 #define NDEBUG 
    #include "glog/logging.h"
  2 #include "show.h"
  3 int main(int argc, char **argv)
  4 {
  5     FLAGS_stderrthreshold = 2;
  6     google::InitGoogleLogging(argv[0]); // 初始化GLog库
  7     DLOG(ERROR) << "There is error !!!";
  8     show();
  9     return 0;
 10 }

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值