log4cxx编译

本人进行过win7 64位操作系统和win10家庭版的log4cxx编译,使用的是vs2015,下面是详情。

1.sed下载
sed-4.2.1-bin.zip、sed-4.2.1-dep.zip下载地址:http://gnuwin32.sourceforge.net/packages/sed.htm
下载后,将sed的两个压缩包解压, 内层相同的文件夹合并到一起, 然后将sed.exe所在的路径添加到系统的环境变量下。
注意:我在win7上下载后,sed是可以正常运行的,win10家庭版则不行,为此,win10家庭版,我采取安装git的方式,git的安装路径下有sed.exe,本人的Git安装在D:\Program Files,则D:\Program Files\Git\usr\bin下面可以看到sed.exe,将D:\Program Files\Git\usr\bin加入到path环境变量。
2.apr、apr-util下载
下载地址:http://apr.apache.org/download.cgi
注意,别下载最新的,本人下载的是apr-1.5.2-win32-src.zip和apr-util-1.5.4-win32-src.zip。
apr、apr-util解压后放入到同一目录下,名字为:apr、apr-util
3.log4cxx下载
下载地址:http://logging.apache.org/log4cxx/latest_stable/download.html
注意,别下载最新的,本人下载的是apache-log4cxx-0.10.0.tar.gz
将log4cxx解压后放入和apr,apr-util同一目录,名字为:log4cxx

如下所示
在这里插入图片描述
4.编译
a)使用命令行到达log4cxx目录下,依次执行configure.bat, configure-aprutil.bat进行前期的准备工作
b)打开log4cxx\projects 目录下的log4cxx.dsw,按照提示升级项目, 这个升级有问题,会弹出网页指出错误,但是不会影响编译
c)vs加载后,在同一个解决方案下生成是四个,如图所示
在这里插入图片描述
d)直接编译log4cxx,会顺带编译apr和aprutil,编译中间,会有报错,一个三个错误,两个编译错误,一个链接错误
第一个编译错误:loggingevent.h,这个头文件会出现大量的错误,双击错误行进去,打开宏定义:
#define LOG4CXX_LIST_DEF(N, T) \
template class LOG4CXX_EXPORT std::allocator; \
template class LOG4CXX_EXPORT std::vector; \
typedef std::vector N
替换为:
#define LOG4CXX_LIST_DEF(N, T) typedef std::vector N

第二个编译错误:insert_iterator: 不是“std”的成员,此时在stringhelper.cpp里面添加对应的头文件即可

#include  <string>
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
using namespace std;

链接错误:报__imp__UuidCreate@4没有定义,此时将rpcrt4.lib添加进去即可。

编译出来的成果物为log4cxx.dll和log4cxx.lib,头文件位于src/main/include下面

下面地址是本人对log4cxx写的一个小demo
demo地址

猜你喜欢

转载自blog.csdn.net/tusong86/article/details/112688712
今日推荐