log4cxx日志库在Windows+VS2017上的编译使用
项目中用到了log4cxx,但是Debug版本运行时老是提示找不到Properities::setProperty?怀疑是提供的库有问题,所以尝试源码来重新编译一下。
log4cxx官方主页:https://logging.apache.org/log4cxx/latest_stable/
github地址:https://github.com/apache/logging-log4cxx
log4cpp,log4cplus,log4cxx这几个什么关系?
Log4cxx需要依赖于APR。
Log4cpp较log4c移植性稍差些。
Log4c基本上都是一些纯c的东西,移植性比其他二者都要好
log4cplus: 简洁, 下载的包编译顺利, 测试例子也能顺利运行。
log4cxx: 臃肿, 需要引用apr(Apache Portable Runtime), 最痛苦的是老是编译不了。
log4cpp: 落后, 最后更新于2007年,而且下载的包不完整。
我尝试在Windows+VS2017上编译log4cxx,但是按照网上的方法无法编译成功,会提示一堆错误,让人望而却步。
最终找到了前人已经整理好的版本(https://download.csdn.net/download/xie1xiao1jun/10908599),根据需要稍加修改后即可正常使用。
我修改的部分:log4cxx.h
// definitions used when using static library
#if defined(LOG4CXX_STATIC) || (defined(_MSC_VER) && _MSC_VER >= 1900)
#define LOG4CXX_EXPORT
// definitions used when building DLL
#elif defined(LOG4CXX)
#define LOG4CXX_EXPORT __declspec(dllexport)
#else
// definitions used when using DLL
#define LOG4CXX_EXPORT __declspec(dllimport)
#endif
我的情况,由于上述在代码编辑器中LOG4CXX_EXPORT无法指定是导出还是导入,所以我重新后面加了一下:
在预处理宏中添加LOG4CXX,此时就为导出了!
#if defined(LOG4CXX)
#define LOG4CXX_EXPORT __declspec(dllexport)
#else
#define LOG4CXX_EXPORT __declspec(dllimport)
#endif
使用VS2017,设置x64 Debug,设置生成动态库,会成功编译生成log4cxx.lib和log4cxx.dll
如何使用,请参考官方文档:https://logging.apache.org/log4cxx/latest_stable/usage.html
log4cxx日志库在Windows+VS2017上的编译使用的更多相关文章
- log4cxx日志库RedHat下安装
今天领导交给我一个任务:把log4cxx库在Redhat系统上面安装起来 首先.我得到信息,安装这个库一共须要三个软件 apr-1.4.6.tar.gz apr-util-1.4.1.tar.gz a ...
- windows vs2017环境下编译webkit
源码地址:https://github.com/BlzFans/wke 先看官方的说明: Web和Flash的嵌入式3D游戏,基于WebKit 建筑工作单元 VS2005: 1安装Visual Stu ...
- 这些混账的开源库在煞笔Windows系统上的编译方法
母语不就是用来吐槽的么!!!!!说母语我不骂人难道还用英语么!!!!!!!!!! 说什么什么开源库好的狗日的,尼玛有种先搞定编译啊卧槽!!!!!!!!! 是的!!!!!你可以吐槽老子智商低用弱智煞笔W ...
- windows vs2017环境下编译webkit 2
WebKit在Windows上 内容 安装开发工具 设置Git存储库 设置支持工具 构建WebKit 安装Cygwin(可选) 得到一个崩溃日志 本指南提供了用于构建WebKit的指令在Windows ...
- 在windows系统上使用pip命令安装python的第三方库
在windows系统上使用pip命令安装python的第三方库 通过cmd启动命令行后,直接输入pip命令,有时候命令行会提示我们pip不是一个指令,这个时候我们可以通过python的集成开发环境里面 ...
- glog日志库使用笔记
日志能方便地诊断程序原因.统计程序运行数据,是大型软件系统必不可少的组件之一.glog 是google的开源日志系统,相比较log4系列的日志系统,它更加轻巧灵活. 在Github上下载glog,解压 ...
- C/C++log日志库比较
事实上,在C的世界里面没有特别好的日志函数库(就像Java里面的的log4j,或者C++的log4cxx).C程序员都喜欢用自己的轮子.printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者 ...
- 如何将SQL Server运行到Windows Azure上
从2012年6月6日开始,Windows Azure上一些强大的新功能现在可用于预览,包括新的Windows Azure虚拟机(VM).其中有关Windows Azure虚拟机最强大的一件事是他们利用 ...
- 开源日志库log4cplus+VS2008使用
一.简介 log4cplus是C++编写的开源的日志系统,功能非常全面.本文介绍如何在Windows+VS2008中使用该日志库. 二.下载 可从网站[url]http://log ...
随机推荐
- ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await
PS:异步编程的本质就是新开任务线程来处理. 约定:异步的方法名均以Async结尾. 实际上呢,异步编程就是通过Task.Run()来实现的. 了解线程的人都知道,新开一个线程来处理事务这个很常见,但 ...
- 数据结构javascript实现
电脑配置 CPU:AMD X4 640 内存: 宏想 DDR3 1600MHz 8g 主板:华擎 980DE3/U3S3 R2.0 浏览器:chrome 79.0.3945.88(正式版本) (64 ...
- Python Web(二)
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.Django-debug-toolbar django-debug-toolbar 是一组可配置的面板,可显示 ...
- HTML中特殊符号编码对照表,html特殊符号编码都有哪些?
HTML中一些无法打出来的符号可以用相应的代码进行代替显示,本文提供了一些HTML特殊符号相应的代码供开发者参考. 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 特殊符号 命名实体 ...
- Tensorflow创建会话,启动会话
import tensorflow as tf #定义一个常量 m1=tf.constant([[,]])#这是一个一行两列的数据 print(m1) m2=tf.constant([[],[]]) ...
- JS 逻辑
JS 逻辑 Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false). Boolean 对象 您可以将 Boolean 对象理解为一个产生逻辑值的对象包装器. Boolean ...
- 程序运行时间测试 - 使用系统函数 getrusage 获取程序运行时间
https://github.com/yaowenxu/Workplace/blob/master/timer/getrusagetimer.c 关键结构体: struct rusage { stru ...
- docker 存储卷 Volumes
一,docker容器面临的困境: 容器运行中产生的数据,是放到容器栈的最顶层,当容器停止并被删除后,这些数据就被删除了. docker采用COW(写时复制)策略,导致性能低下.比如有个mysql容器, ...
- [Go] go连接influxdb的库
开启了influxdb后,会监听8086端口下载客户端代码git clone https://github.com/influxdata/influxdb1-client.git $GOPATH/sr ...
- 008.MongoDB分片群集概念及原理
一 MongoDB分片介绍 1.1 分片 Mongodb另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足 ...