原文:http://blog.csdn.net/qq_35850668/article/details/52522932

最近工作需要,需要使用log库来完善日志类记录,由于之前没什么经验,遇到了很多困难。

工作环境: X64+VS2013社区版

log4cplus官网下载路径:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.1.3/

具体经历如下:

1:下载了最新版的log4cplus-1.2.0.7源代码。进入...\log4cplus-1.2.0\msvc10文件夹,点击sln后,默认使用了VS2010来打开项目了(本人恰好安装了VS2010),悲剧就开始了。

2:编译log4cplus和log4cplusS两个项目之后,很轻易就编译OK了,心情棒棒哒。

生成了log4cplusD.dll和log4cplusD.lib以及log4cplusSD.lib,你可以选择前两个配套使用,也可以选择最后一个lib单独使用。于是我把这三个库+include文件夹拷进了我自己的项目(VS2013)。我选择的前两个库一起配套使用。

3:把库关联好,把log4cplusD.dll添加到exe生成目录后,编译,出现各种无法解析的外部log4cplus函数。检查include包含和库包含目录,检查头文件,检查依赖库和exe同目录的dll,都没有问题啊,

百度很久后才知道原来是log4cplus
dll项目字符集跟当前项目字符集不一致。我的项目当前字符集是Unicode,而log4cplus是默认的多字节字符集,改为unicode后编译成功。

4:在自己代码中封装好log4cplus类后:

编译链接运行后,发现一调用log4cplus自带库函数,整个程序就崩溃。后来偶然把项目的平台工具集改成v100后,程序正常。

5:然而VS2013平台环境不能因为log4cplus不适应而更改,所以只能重新用VS2013来编译log4cplus,再把生成的库放入工程后,一切正常,没有出现奔溃,也能够正常生成log。可是在程序main函数return后,出现exit()错误,程序崩溃。

6:查找很多资料,都没能解决问题,后来看到这篇客:http://www.cnblogs.com/swarmbees/p/5621619.html,更加心如死灰,于是就放弃了,准备自己开刀写个日志类。

7:当我写完后,老大看到了,对我说有现成的log4cplus库,要我去使用这个库。我于是又回到上面的问题。

8:偶然看到一篇文章http://blog.csdn.net/shaozhenged/article/details/51866186,发现走过的路都白走了,博主说他使用的是log4cplusSD.lib库,而不是log4cplusD.dll和log4cplusD.lib配对,我把项目库也改成了log4cplusSD.lib后,问题就这样解决了。

VS2013下使用log4cplus的更多相关文章

  1. 在win 7 vs2013下 web 调试 出现“ iis Express Worker Process 已停止工作”错误

    在win 7 vs2013下 web 调试 出现“ iis Express Worker Process 已停止工作”错误: 如下图:   最终解决方案如下: 用管理员身份运行CMD,输入netsh  ...

  2. C++11 图说VS2013下的引用叠加规则和模板参数类型推导规则

    背景:    最近在学习C++STL,出于偶然,在C++Reference上看到了vector下的emplace_back函数,不想由此引发了一系列的“探索”,于是就有了现在这篇博文. 前言:     ...

  3. vs2013下git的使用

    一.将VS2013项目托管到Git 现在的开源项目越来越多,我们会注意到这些开源项目大多共享在GitHub上面,包括微软开源的项目也在Github上,当然,如果你用过Git后,会发现Git确实不错,其 ...

  4. vs2013下的WCFRest 模板开发WCF

    在vs2013下使用wcfRestservice40 是安装不成功的,尝试多遍,都是这样.查看以前vs2012做的wcfrest,经过调教,终于在vs2013下也可以了! 1.新建wcf服务应用程序 ...

  5. live555—VS2010/VS2013 下live555编译、使用及测试(转载)

    Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等 的支持.Live555实现了对多种音视频 ...

  6. vs2013下配置opencv1.0.0

    vs2013下配置opencv1.0.0 2019-4-25 17:13:13 原因 现在最新opencv已经到4.0.1版了.用opencv1.0原因: 小.源码包只有10M左右. 清晰.他的文档结 ...

  7. 关于VS2013下制作和使用静态库和动态库

    关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...

  8. 人脸识别引擎SeetaFaceEngine简介及在windows7 vs2013下的编译

    SeetaFaceEngine是开源的C++人脸识别引擎,无需第三方库,它是由中科院计算所山世光老师团队研发.它的License是BSD-2. SeetaFaceEngine库包括三个模块:人脸检测( ...

  9. VS2013下的64位与32位程序配置

    VS2013下的64位与32位程序配置   在Windows 7 64bit和Visual Studio 2013下生成64位程序. 新建一个Visual Studio Win32 Console项目 ...

随机推荐

  1. 后台开发面试题(.net与java)

    最近面试了几家公司,发现大部分公司面试题有相似的地方.现在此记录下我还记得的一些题: JAVA部分: 1.Java Map 按Key排序和按Value排序: 参考链接:Java Map 按Key排序和 ...

  2. loj 6433 「PKUSC2018」最大前缀和 题解【DP】【枚举】【二进制】【排列组合】

    这是个什么集合DP啊- 想过枚举断点但是不会处理接下来的问题了- 我好菜啊 题目描述 小 C 是一个算法竞赛爱好者,有一天小 C 遇到了一个非常难的问题:求一个序列的最大子段和. 但是小 C 并不会做 ...

  3. java.lang.Exception: The server rejected the connection: None of the protocols were accepted

    solution for this is from comment for https://issues.jenkins-ci.org/browse/JENKINS-29616. The follow ...

  4. div实现高度自适应的textarea

    textarea使我们常常使用的一种表单形式,多用于大段文字的输入,大多数情况下,textarea都是可以满足需求的,但是当我们希望这个输入框高度自适应的时候,textarea就很难做到了. ok,主 ...

  5. 【文档】一、Mysql Binlog概述

    Binlog是一系列日志文件,他们包含的内容是Mysql数据内容的改变.如果想开启binlog功能,需要在启动时带上--log-bin参数. binlog是从Mysql3.23.14版本开始的.它包含 ...

  6. Django models 的增删改查

    增 from app01.models import * #create方式一: Author.objects.create(name='Alvin') #create方式二: Author.obje ...

  7. js 获取当前标签 jquery1.11.4

    .<input type="checkbox" onchange='allstu(this);return false;' /> 2.<input type=&q ...

  8. DateGridView 分页显示

    l 思路:将数据表整体填充至一个Dataset中,探后部分显示(DataaAdapter Fill重载) l DataGridView 控件   l BindingNavigator 控件   l B ...

  9. C# 多维数组

    int[, ,] shuzu = new int[4, 3, 2]; //有四个二维数组,每个二维数组里面有3个1维数组,每个1维数组里面有2个元素

  10. 利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载

    简述 可能大家都知道,php中有一个函数叫debug_backtrace,它可以回溯跟踪函数的调用信息,可以说是一个调试利器. 好,来复习一下 01 one(); 02 03 function one ...