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_project\log4cpp-1.1.3。

    3.2 编译

     打开msvc10.sln

    使用VS2015打开msvc10.sln:D:\develop_project\log4cpp-1.1.3\log4cpp\msvc10\msvc10.sln。

        编译log4cpp、log4cppLIB

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

  4、报错

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

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

    重新编译后,成功。

     生成log4cpp.dll、log4cpp.lib,在目录:D:\develop_project\log4cpp-1.1.3\log4cpp\msvc10\log4cpp\Debug下。

三 引用

  1、头文件 *.h

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

  设置头文件路径(例如,D:\develop_project\log4cpp-1.1.3\log4cpp\include),如下图。这样,整个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

原文地址:https://www.cnblogs.com/lhlc-9-9/p/12358278.html

时间: 2024-10-17 00:19:44

Log4cpp 编译+引用的相关文章

Xcode编译引用Framework

需要两步配置 1.在xcode工程的search path下设置要引用的Framework所在路径 2.将Framewoek拖入工程中时 不要选择copy,而选择引用模式.

vc写的dll被mingw的g++编译引用

dll.cpp,用vc2017编译 #include <iostream>#include <windows.h> extern "C" __declspec(dllexport) void Go() { std::cout << "go" << std::endl;} BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lp

[转] .net软件反编译笔记

原文地址:http://blog.csdn.net/three_bird/article/details/51433734 在软件的破解及源码获取及重新编译的道路上会遇到一些问题,书此备查. 大名鼎鼎的Reflector以及开源的ILSPY都是.NET程序集的反编译利器,但是它们不能为你做全部的工作. 0x01: 遇到反编译所得源码里面调用类的属性时多出set_Name或者get_Name之类的说明程序集引用没有加载完全, 因为反编译工具在没有元数据的情况下无法判断这丫的到底是个方法还是个属性.

向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)

在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:    ·Quartus不支持Testbench:    ·调用了megafunction或者lpm库之类的Altera的函数:    ·时序仿真要在Modelsim下做仿真.    下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus II软件中自带有Altera的仿真库,只要把它拿到ModelSim中去编译一下就可以了,具体步骤如下:1.设置仿真库路径    打开M

关于webpack编译scss文件

css加载器文件通常和extract-text-webpack-plugin一块使用,我们可以在源文件src目录下写scss文件,然后通过webpack编译成css文件到输出目录public,这个目录就是我们网站需要引用的目录. 1 var webpack = require('webpack'); 2 var HtmlWebpackPlugin = require('html-webpack-plugin'); 3 var ExtractTextWebpackPlugin = require(

bitcode编译错误

xcode编译引用的静态库可能会出现编译错误: does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 clang: error: linker comm

.net软件反编译笔记

在软件的破解及源码获取及重新编译的道路上会遇到一些问题,书此备查. 大名鼎鼎的Reflector以及开源的ILSPY都是.NET程序集的反编译利器,但是它们不能为你做全部的工作. 0x01: 遇到反编译所得源码里面调用类的属性时多出set_Name或者get_Name之类的说明程序集引用没有加载完全, 因为反编译工具在没有元数据的情况下无法判断这丫的到底是个方法还是个属性. 有时候反编译得到的源码里的-1实际上可能是某个数的最大值,因为反编译时没有加载依赖的程序集,工具将类似int.MaxVal

Gradle 编译多个project(包括多Library库project依赖)指导

Gradle Android最新自己主动化编译脚本教程(提供demo源代码) 这篇文章我简单写了基于Gradle2.1 进行的android project和android library的编译实例,随后有网友问我是否支持依赖多library编译.我的回复是肯定的,具体见以下的指导: 在实际开发中有非常多工程引用到了android-support-v4.jar或者其它的jar包资源: 有时候.在每一个library库的libs里都放进android-support-v4.jar 在eclpse里

java程序编译

Empoyee.java package Company; public class Empoyee { String name = ""; public Empoyee(String name) { this.name = name; } public String getName() { return this.name; } } 编译 # 开发第三方库 cd ~/src/Company mkdir source mkdir classes # 编写代码并编译 cd source