Log4cpp 编译+引用

Posted lhlc-9-9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log4cpp 编译+引用相关的知识,希望对你有一定的参考价值。

一 Log4cpp介绍

  Log4cpp 类似的支持库还包括Java(log4j),C++(log4cpp、log4cplus),C(log4c),python(log4p)等。

log4c... 是基于log4j的一系列的c++移植版本,使用了log4j的模式结构,目前主要有以下几个版本: 
1. log4cxx ,Apache下的孵化项目,不能独立编译,依赖于APR,编译比较麻烦,2008年以后就没再更新;
2. log4cplus ,最近一次更新2016-01-16,不依赖于第三方库;
3. log4cpp ,也不依赖与第三方库,与log4cplus功能类似,但是简化了一些实现,增加了一些功能;

Log4cpp编译

  1、下载

  文件名: log4cpp-1.1.1.tar.gz

  下载地址: http://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.x%20%28new%29/log4cpp-1.1/

  2、编译环境

  目标平台:Windows 8.1、VS2015(v140)

  3、编译过程

  3.1 解压

      将log4cpp-1.1.1.tar.gz解压缩到:D:develop_projectlog4cpp-1.1.3。

    3.2 编译

     打开msvc10.sln

          使用VS2015打开msvc10.sln:D:develop_projectlog4cpp-1.1.3log4cppmsvc10msvc10.sln。

        编译log4cpp、log4cppLIB

        将sln中的test的工程删除,只保留log4cpp、log4cppLIB,进行编译。 

  4、报错

    错误 C2084 函数“int snprintf(char *const ,const std::size_t,const char *const ,...)”已有主体 log4cpp d:develop_projectlog4cpp-1.1.3log4cppsrcsnprintf.c 536 

技术图片

    解决方法:定位到这个方法,将这个方法整个注释掉。(这样做目前未发现问题)

    重新编译后,成功。

      生成log4cpp.dll、log4cpp.lib,在目录:D:develop_projectlog4cpp-1.1.3log4cppmsvc10log4cppDebug下。

三 引用 

  1、头文件 *.h

  打开“附加包含目录”,位置如下图:

技术图片

 技术图片

   设置头文件路径(例如,D:develop_projectlog4cpp-1.1.3log4cppinclude),如下图。这样,整个include文件夹中的头文件就引入到工程里了。

技术图片

  2、静态库*.lib

  找到刚才生成的lib文件的路径,添加到下图所示“附加库目录”的位置。最后将lib文件名写在下图“附加依赖项”的位置。

技术图片  

 技术图片

  3、动态库 *.dll

  将动态库文件复制粘贴到工程文件所在的目录下 和 debug目录下。如图:

技术图片 

技术图片

四 使用说明

  Log4cpp具体如何使用,可以参考以下链接

  http://log4cpp.sourceforge.net/#simpleexample

  https://www.ibm.com/developerworks/cn/linux/l-log4cpp/

       https://www.xuebuyuan.com/3255730.html

  介绍lib与dll文件区别的链接

  https://www.cnblogs.com/TenosDoIt/p/3203137.html

  https://www.cnblogs.com/zkwarrior/p/10948174.html

以上是关于Log4cpp 编译+引用的主要内容,如果未能解决你的问题,请参考以下文章

linux上编译log4cpp1.0包时出现错误。

log4cpp 日志库

使用 log4cpp 时访问冲突写入位置

检测到“DEBUG”的 Log4cpp 命名冲突。

Log4cpp的编译方法

SWIG tcl:log4cpp 包装器的未定义符号错误