Chosen

常用链接

统计

最新评论

VS2010编译log4cxx-0.10.0

 

初次在cppblog写博客,希望未来越写越好,与大家分享探讨技术人生(说起来都没底气=_=)。
Log4cxx是业界跨平台日志组件中用得比较广泛的,具体的介绍说明这里就不多了,百度一下,你就知道。本文章主要讲述了源码如何在VS2010中编译成功,至于简单的使用将在下一篇博文是讲述。

最近,项目leader说要用到apache-log4cxx- 0.10.0,让我先熟悉一下。便从 www.apache.org 分别下载了 apache-log4cxx-0.10.0.zip , apr-1.4.6-win32-src.zip , apr-util-1.5.1-win32-src.zip 三个开源源码包。看来要使用的话还必须先编译成库文件才是。apr apr-util  编译倒是没什么问题,但 log4cxx 就遇到一些问题了。从网上找了些答案,已记不清原网络链接了,所以也在这里写一篇文章以备日后查看。

切入正题,步骤大概如下:

1. 到Apache站点上下载上述三个源码包

2. 将源码包解压至同一目录下,并更改目录名: apr-1.4.6 改为 apr,将 apr-util-1.5.1 改为apr-util

3. 在开始菜单的VS2010目录下,启动“Visual Studio 命令提示(2010),并切换到 apache-log4cxx-0.10.0 目录下,运行 configure.bat

4. 执行完上述命令后,再运行 configure-aprutil.bat,这时可能会提示 ‘sed’ 不是内部或外部命令xxx,这时我是装了一个 Cygwin,关于Cygwin的安装可能参考如下 http://www.cygwin.cn/site/install/ 然后在我的电脑属性里设置环境变量,在path变量中加入如: G:\cygwin\bin 至于Cygwin在安装过程中会有一个步骤让你选择安装哪些包,这时可以输入 sed 关键字过滤选项即可,然后沟选相应的包安装即可。

5. 再运行 configure-aprutil.bat,现在应该会出现 cygwin warning等信息

6. 启动VS2010并打开 apache-log4cxx-0.10.0\projects\ 下的 log4cxx.dsw 工程,然后选择 “是”,转换并打开此项目

7. 将 log4cxx设置为启动项,然后开始编译

8. 此时可能会出现以下一些错误,一一处理即可:

    1xxx\apache-log4cxx-0.10.0\src\main\include\log4cxx/spi/loggingevent.h(155):error C2252: 只能在命名空间范围内显式实例化模板' 错误.

a)双击 "输出" 窗口中的错误行, 此时会在 "代码窗口" 中出现错误的位置.

b)选择 LOG4CXX_LIST_DEF, 按键盘 F12, 此时会跳转到该宏的定义

c)将

#define LOG4CXX_LIST_DEF(N, T) \

template class LOG4CXX_EXPORT std::allocator<T>; \

template class LOG4CXX_EXPORT std::vector<T>; \

typedef std::vector<T> N

注释掉,替换为:

#define LOG4CXX_LIST_DEF(N, T) \

typedef std::vector<T> N

    2network_io\unix\multicast.c(137): error C2079:“mip”使用未定义的 struct“group_source_req"' 等错误.

         双击第一行出错输出, 136 148 行的

         #if MCAST_JOIN_SOURCE_GROUP  注释, 替换为

         #if defined (group_source_req)

    3xxx \src\main\cpp\stringhelper.cpp(64): error C2039: “insert_iterator”: 不是“std”的成员' 等错误.

           在该.cpp (stringhelper.cpp) 加入头文件 #include <iterator>

    4无法解析的外部符号 xxx' 等错误

          则右键log4cxx项目属性,通用属性 | 框架和引用,将apr, aprutil, xml 添加至 log4cxx 的引用中

9. 选择重新生成解决方案即可,编译将得到 log4cxx.lib 和 log4cxx.dll 两个文件

编译成功后,就可以将该lib和dll文件在你的项目中应用了哦~
简单使用介绍将在下一节介绍。

posted on 2013-04-29 17:42 Choice 阅读(1134) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理