心血来潮要去看开源代码,看到公司的日志库是在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文件,在调用的时候可以直接连接到源文件,比较好调试
 
    测试代码:

 #include <iostream>

 #include "glog/logging.h"

 int main()
{
google::InitGoogleLogging("log");
google::SetLogDestination(google::GLOG_INFO, "./myinfo");
LOG(INFO) << "嘿嘿...";
LOG(WARNING) << "呵呵...";
LOG(ERROR) << "嘻嘻...";
LOG(FATAL) << "哈哈...";
LOG(INFO) << "嘤嘤..."; return ;
}
   5. 最后总结
    老感觉少写了点啥, 非常感谢同事WJ的帮助, 编程之路一个人独行确实很难走下去,每次爆出束手无策的错误,总是让人很迷茫.
有些经验并不是搜索引擎能搜的到的. 乐于助人乐于分享的大牛们,都是我的榜样. 
 

Google-GLog编译以及使用的更多相关文章

  1. Google glog 使用

    Google glog 使用 1        简介 Googleglog 库实现了应用级的日志记录,提供了C++ 风格的流操作和各种助手宏. 代码示例: #include <glog/logg ...

  2. c++ google glog模块安装和基本使用(ubuntu)环境

    1,如何安装 1 Git clone https://github.com/google/glog.git 2 cd glog 3 ./autogen.sh 4 ./configure --prefi ...

  3. google::Glog

    windows下使用google的Glog库 下载glog-.tar.gz,解压. vs2013打开工程, 有四个项目 libglog libglog_static logging_unittest ...

  4. google glog 使用方法

    #include <glog/logging.h> int main(int argc,char* argv[]) { google::ParseCommandLineFlags(& ...

  5. google::protobuf 编译方法

    这两天用了一下Protobuf 感觉很方便, 记录一下编译过程, 以做务忘(需要安装cmake): 1: 下载地址: https://developers.google.com/protocol-bu ...

  6. Google glog error LNK2001: unresolved external symbol "__declspec(dllimport) int fLI::FLAGS_XXXX 错误的解决。

    想在 windows 下使用 glog,使用类似 FLAGS_max_log_size 来设置参数,结果编译报错. 解决办法是在 项目属性 -> C/C++ -> Preprocessor ...

  7. VS2013配置编译Caffe-Win10_X64

    原文链接:http://blog.csdn.net/joshua_1988/article/details/45036993 有少量修改................ 2014年4月的时候自己在公司 ...

  8. VS2013配置Caffe卷积神经网络工具(64位Windows 7)——准备依赖库

    VS2013配置Caffe卷积神经网络工具(64位Windows 7)--准备依赖库 2014年4月的时候自己在公司就将Caffe移植到Windows系统了,今年自己换了台电脑,想在家里也随便跑跑,本 ...

  9. glog的编译和使用

    glog是google提供的一个轻量级日志库,有chromium开发经验的人都会发现,它和base库中的日志库非常像,其实base库中的日志库比它更加轻量级.glog在日常开发中的使用非常广泛.这里介 ...

  10. ubutun16.04 安装编译glog日志库

    glog 是一个 C++ 日志库,它提供 C++ 流式风格的 API.在安装 glog 之前需要先安装 gflags,这样 glog 就可以使用 gflags 去解析命令行参数(可以参见gflags ...

随机推荐

  1. GPS部标监控平台的功能设计(一)-功能列表

    在2011年交通部的796标准推出后,随着各地交管部门的硬性要求,大多数的GPS监控系统或者车辆管理系统或者物流管理系统,无论是旧的,还是新开发的,都必须要以796标准为基础蓝本,首先要满足796的要 ...

  2. c#项目架构搭建经验

    读过.Net项目中感觉代码写的不错(备注1)有:bbsMax(可惜唧唧喳喳鸟像消失了一样),Umbraco(国外开源的cms项目),Kooboo(国内做开源cms).本人狭隘,读的代码不多,范围也不广 ...

  3. cygwin 安装apt-cyg命令

    googlecode关闭了.没法用wget安装apt-cyg 找了半天只有github里有个方法可行: apt-cyg is a simple script. To install: lynx -so ...

  4. 获取设备的mac地址和IP地址(android6.0以上专用)

    /** * 获取设备HardwareAddress地址 * @return */public static String getMachineHardwareAddress(){ Enumeratio ...

  5. Markdown 是什么

    tags: Markdown tags && syngx ###Markdown 是什么Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber).它允许人 ...

  6. android stduio 引入 .so

  7. HDU-1257 导弹拦截系统 http://acm.hdu.edu.cn/showproblem.php?pid=1257

    Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高 ...

  8. 3.MongoDB下Windows下的安装

    由于博主目前使用的是Windows的系统,没有使用Linux等其它的系统,因此此安装配置和开发使用,均是在Windows下进行的,以后在使用其它的系统的时候,再将其它系统的配置的使用补充上来. 1.下 ...

  9. webservice通信调用天气预报接口实例

    转载:http://www.cnblogs.com/warrior4236/p/5668449.html 一:环境搭建 1:新建一个java project工程weatherInf 2:引入相应的ja ...

  10. Array常用方法

    定义二维数组: list = [['保密',''],['男',1],['女',0]] 引用 怎么创建与返回值是二维数组形式 不知道你想要怎样的答案 如果是一方法想要返回二维数组,方法的最后一行是那个数 ...