• Google-GLog编译以及使用


    心血来潮要去看开源代码,看到公司的日志库是在google-glog开源库上二次封装的,那就先撸glog吧.

    1. 下载源码 

      一条命令取源码:git clone github.com/google/glog

    2. 编译库文件

      双击打开,右键编译,看到succeed,心情还不错~

              

    3. 其他工程调用

      a. 建工程

        

      b. 拷贝头文件

        

       

      c. 放置lib文件

        

      d. 放置dll文件

        

      

      e.  TestDemo工程配置

      配置一:

        

      配置二:

        

      

      配置三:

        

      

      f. 运行

        

      

      g. 一脸懵逼

        

      h. 结论

            洗洗睡吧 !

     编译使用第二发

      1. 痛定思痛,痛何如哉?

      2. 原因分析

        简单的调用都出问题,不爽,看源码。

        我的Demo调用了这个宏来输出

        

         接着找到这个宏

        

        

       

        调用了非C++基础库文件。问题找到。
        原因在于,dll库文件在编译的时候,调用了非基础库的类。这个类在每个不同的编译器上实现可能都不同,因此,用VS2008编译,用VS2013调用会出问题, 问题表现为指针错误。
        并且静态库一定要编译器版本号对应。
        解决方案也很简单,VS2013编译库文件---->VS2013调用 VS2008编译库文件---->VS2008调用

       

      3. 纠正错误

        改用VS2013编译的库,问题解决

        

        

        

      4. 学到的东西

         a. 库文件调用,产生异常的内存读取错误等等...为库文件版本问题。
                b. 通用的库文件,动态库,必须使用C++基本数据类型编译才可通用。
                c. 静态库一定需要编译器版本相同。
                d. 静态库版本错误会导致各种链接错误。
                e. 本机编译的dll文件,在调用的时候可以直接连接到源文件,比较好调试
     
        测试代码:
     1 #include <iostream>
     2 
     3 #include "glog/logging.h"
     4 
     5 int main()
     6 {
     7      google::InitGoogleLogging("log");
     8      google::SetLogDestination(google::GLOG_INFO, "./myinfo");
     9      LOG(INFO)       << "嘿嘿...";
    10      LOG(WARNING)    << "呵呵...";
    11      LOG(ERROR)      << "嘻嘻...";
    12      LOG(FATAL)      << "哈哈...";
    13      LOG(INFO)       << "嘤嘤...";
    14 
    15      return 0;
    16 }
       5. 最后总结
        老感觉少写了点啥, 非常感谢同事WJ的帮助, 编程之路一个人独行确实很难走下去,每次爆出束手无策的错误,总是让人很迷茫.
    有些经验并不是搜索引擎能搜的到的. 乐于助人乐于分享的大牛们,都是我的榜样. 
     
  • 相关阅读:
    【数学】多项式取 ln
    【数学】多项式求逆
    【模拟 + 栈】AcWing 151. 表达式计算4
    Unity3D开发入门教程(一)——搭建开发环境
    Unity3D开发入门教程(三)——添加启动脚本
    Unity3D开发入门教程(二)—— Lua入门
    Unity3D开发入门教程(四)——用Lua实现组件
    哈希表
    邻接表
    并查集
  • 原文地址:https://www.cnblogs.com/ccccnzb/p/6150496.html
Copyright © 2020-2023  润新知