VS2013下使用log4cplus
原文: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的更多相关文章
- 在win 7 vs2013下 web 调试 出现“ iis Express Worker Process 已停止工作”错误
在win 7 vs2013下 web 调试 出现“ iis Express Worker Process 已停止工作”错误: 如下图: 最终解决方案如下: 用管理员身份运行CMD,输入netsh ...
- C++11 图说VS2013下的引用叠加规则和模板参数类型推导规则
背景: 最近在学习C++STL,出于偶然,在C++Reference上看到了vector下的emplace_back函数,不想由此引发了一系列的“探索”,于是就有了现在这篇博文. 前言: ...
- vs2013下git的使用
一.将VS2013项目托管到Git 现在的开源项目越来越多,我们会注意到这些开源项目大多共享在GitHub上面,包括微软开源的项目也在Github上,当然,如果你用过Git后,会发现Git确实不错,其 ...
- vs2013下的WCFRest 模板开发WCF
在vs2013下使用wcfRestservice40 是安装不成功的,尝试多遍,都是这样.查看以前vs2012做的wcfrest,经过调教,终于在vs2013下也可以了! 1.新建wcf服务应用程序 ...
- live555—VS2010/VS2013 下live555编译、使用及测试(转载)
Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等 的支持.Live555实现了对多种音视频 ...
- vs2013下配置opencv1.0.0
vs2013下配置opencv1.0.0 2019-4-25 17:13:13 原因 现在最新opencv已经到4.0.1版了.用opencv1.0原因: 小.源码包只有10M左右. 清晰.他的文档结 ...
- 关于VS2013下制作和使用静态库和动态库
关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...
- 人脸识别引擎SeetaFaceEngine简介及在windows7 vs2013下的编译
SeetaFaceEngine是开源的C++人脸识别引擎,无需第三方库,它是由中科院计算所山世光老师团队研发.它的License是BSD-2. SeetaFaceEngine库包括三个模块:人脸检测( ...
- VS2013下的64位与32位程序配置
VS2013下的64位与32位程序配置 在Windows 7 64bit和Visual Studio 2013下生成64位程序. 新建一个Visual Studio Win32 Console项目 ...
随机推荐
- 利用ReentrantLock简单实现一个阻塞队列
借助juc里的ReentrantLock实现一个阻塞队列结构: package demo.concurrent.lock.queue; import java.util.concurrent.lock ...
- P3348 [ZJOI2016]大森林(Link-cut-tree)
传送门 题解 题面大意: \(0.\)区间加节点 \(1.\)区间换根 \(2.\)单点询问距离 如果没有\(1\)操作,因为区间加节点都是加在下面,所以我们可以直接把\(n\)棵树压成一棵树,直接询 ...
- idea 验证码
N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iLCJhc3NpZ25lZU5hbWUiO ...
- Neo4j使用简单例子(转)
Neo4j Versions Most of the examples on this page are written with Neo4j 2.0 in mind, so they skip th ...
- GitHub注册和Git安装
一.注册GitHub GitHub官方地址:https://github.com. 在浏览器中打开GitHub网址,通过首页进行注册,如下图所示. 二.安装Git Git官方下载地址:http://g ...
- Git学习系列之Git基本操作提交项目(图文详解)
前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...
- PHP之string之explode()函数使用
explode (PHP 4, PHP 5, PHP 7) explode - Split a string by string explode - 使用一个字符串分割另一个字符串 Descripti ...
- java注释详解--javadoc注释
一. Java注释分类// 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写法如下: /** * ...... ...
- PTA (Advanced Level) 1016 Phone Bills
Phone Bills A long-distance telephone company charges its customers by the following rules: Making a ...
- 入门系列之使用fail2ban防御SSH服务器的暴力破解攻击
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由SQL GM发表于云+社区专栏 介绍 对于SSH服务的常见的攻击就是暴力破解攻击--远程攻击者通过不同的密码来无限次地进行登录尝试.当 ...