加载中…
个人资料
岩岩爸
岩岩爸
  • 博客等级:
  • 博客积分:0
  • 博客访问:52,995
  • 关注人气:9
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

log4cxx在windows下用vs2010的编译

(2012-09-25 10:01:38)
标签:

it

分类: C++/C
前段时间想找一个日志输出的第三方库,找了好久,终于确定了log4cxx,一个是功能强大,一个是支持多线程输出,多线程非常重要,省了我不少事情,下面我就介绍一下log4cxx的编译方法。

1、准备工作

unzip apr-1.2.11-win32-src.zip

rename apr-1.2.11 apr

unzip apr-util-1.2.10-win32-src.zip

rename apr-util-1.2.10 apr-util

cd apache-log4cxx-0.10.0

configure

configure-aprutil

其中执行configure-aprutil时候说sed命令不存在,解决办法:下载sed for windows,并且把bin路径赋值给环境变量PATH。

 

2、Visual C++ 2010打开log4cxx项目编译

         1)通过VC++ 2010打开项目,VC会自动做项目转换,一般来说这里不会出错。接着选择log4cxx为Active Project,编译。出现一大堆错误。主要都是error C2252: an explicit instantiation of a template can only occur at namespace scope这个,解决办法:

#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

        2)还有可能会出现一个iterator的错误,这个时候需要在cpp文件里包含#include 就可以了

        3)编译成功后,链接过程又抛一大堆链接错误,主要说找不要一些obj(apr,apr-util,xml)。解决办法:手动把这些相关项目的LIBD给添上。


0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有