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项目 ...
随机推荐
- 【算法笔记】B1052 卖个萌
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805273883951104 #include <math ...
- 云服务器、vps、虚拟主机的区别
云服务器 Elastic Compute Service, 简称ECS 好多人理解云服务器和VPS一样,更有甚者说以前的VPS现在的说法就是云服务器,其实不然,云服务器是一个计算,网络,存储的组合.简 ...
- 一张图说清楚SQL的Join
话不多说..看图
- 单独安装VS2012装mono for android
直接安装个SQL Server2012,然后就可以单独安装VS2012 来用mono for android了.如果不想装,那就装以下这些东西. 广州-PC286() 11:05:28 和 x86 ...
- 连接Git@OSC操作步骤
一.准备工作 软件下载 Git:地址 TortoiseGit:地址 二.安装与配置 1.Git安装 Git配置 设置客户端的用户名和email 然后,到Git@OSC 上面注册一个帐号. 这个帐号就是 ...
- Django中管理并发操作
上一篇我们说了,如何在Django中进行事务操作,数据的原子性操作 涉及了事务操作,我们不得不考虑的另一个问题就是:并发操作 还是那个用户转账的操作 我们使用事务操作解决的操作中途服务器宕机问题 但是 ...
- Springsecurity搭建自定义登录页面
1.springSecurity的搭建 新建一个springboot的web项目,我这边只选中了web,建立后如下: pom依赖: <!-- https://mvnrepository.com/ ...
- MVC,MVP,MVVM的区别
MVC模型关注的是Model的不变,所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的.不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难 ...
- ECharts概念学习系列之ECharts是什么?
不多说,直接上干货! http://echarts.baidu.com/index.html http://echarts.baidu.com/echarts2/index.html 开源的EChar ...
- PHP之string之explode()函数使用
explode (PHP 4, PHP 5, PHP 7) explode - Split a string by string explode - 使用一个字符串分割另一个字符串 Descripti ...