zoukankan      html  css  js  c++  java
  • log4cxx的编译

    对于各种lib的编译, 其实都比较简单, 但往往其中有些"机关", 如果要去看原始文档, 一步一步来, 也可以, 但这样浪费时间, 所以记下, 每次需要重新编译这些库时, 在这里翻一下就知道了.

     

    log4cxx的编译参考了:http://blog.sina.com.cn/s/blog_a459dcf501013tbn.html

    略微有点不一样:

     

    1. 下载 log4cxx 以及 apr 和 apr-util 源码:

        这几个源码都属于apache.org, baidu, 进入, 下载即可;

     

    2. 将 3 个压缩包解压到同一个目录.

        arp-1.x.xx 更名为arp, apr-util-1.x.xx更名为arp-util, 因为在log4cxx的工程里面的应用, 目录名称被设置为apr和apr-util. 当然也可以改工程, 但更麻烦;

     

    3、在命令行下运行log4cxx\configure.bat, 可以打开该批处理来看, 该批处理就是将

    log4cxx.hw copy并重命名为log4cxx.h

    log4cxx_private.hw copy并重命名为log4cxx_private.h

     

    4. 然后运行configure-aprutil.bat, 这个批处理的作用是配置arp和apr-util, 但windows下没有sed这个命令:

    sed -i -e "s/#define APU_HAVE_APR_ICONV\b.*/#define APU_HAVE_APR_ICONV 0/" ..\apr-util\include\apu.hw

    sed -i -e "s/#define APR_HAS_LDAP\b.*/#define APR_HAS_LDAP 0/" ..\apr-util\include\apr_ldap.hw

    手动将apu.hw和apr_ldap.hw中的宏APU_HAVE_APR_ICONV, APR_HAS_LDAP设置为0即可;

    5. 使用VS2010打开 apache-log4cxx-0.10.0\projects 下的 log4cxx.dsw, log4cxx.dsw包含了4个工程, apr, apr-util, log4cxx, xml(xml为\apr-util\xml\expat\lib\xml.dsp)全部转换为2010工程. 如果log4cxx没有设为启动项, 将其设为启动项. 工程已经设置好了project的dependency, 直接按F7编译.

     

    编译错误更改:

    1) 编译会出现c2252错误, 是由于LOG4CXX_LIST_DEF宏定义引起, 到该定义, 改为:

    #define LOG4CXX_LIST_DEF(N, T) typedef std::vector<T> N

    2) 还会发现一个insert_iterator不是std成员的错误, 是因为没有包含iterator头, 在文件中包含即可

    #include <iterator>

     

    连接错误更改:

    log4cxx引用了其他几个工程生成的静态lib, 在发现很多外部符号无法解析时, 在工程中设置地其他3个工程的引用即可;

    工程->属性->通用属性->框架和应用, 添加新引用, 将3个工程依次添加即可;

    然后再编译, OK.

  • 相关阅读:
    你不知道的CSS(二) (转载)
    sass 使用
    前端常用工具介绍
    web端调用打印
    sublime 插件:Emmet
    Sublime text 安装Package Control
    Sublime Text 常用的16 个 Sublime Text 快捷键
    js中如何快速获取数组中的最大值最小值
    web app变革之rem
    前端工程需要会的技能
  • 原文地址:https://www.cnblogs.com/crunchyou/p/2869690.html
Copyright © 2011-2022 走看看