zoukankan      html  css  js  c++  java
  • log4cxx编译过程–linux

    前面有一篇Windows下的log4cxx编译, 这里记录下在linux上的编译过程.

    环境:CentOS6.3 gcc-4.4.6

    -> view os version: lsb_release -a
           lsb_release prints certain LSB (Linux Standard Base) and Distribution

    information

    #lsb_release -a
    LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-

    4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
    Distributor ID: CentOS
    Description:    CentOS release 6.3 (Final)
    Release:        6.3
    Codename:       Final

    -> view kerenl and gcc version: -cat /proc/version

    # cat /proc/version
    Linux version 2.6.32-279.el6.i686 (mockbuild@c6b9.bsys.dev.centos.org) (gcc

    version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 10:59:55

    UTC 2012

    log4cxx版本:
    apache-log4cxx-0.10.0
    log4cxx是在apache portable runtime library: apr-1.4.6  apr-util-1.5.2

    第一步: 编译apr
    tar -xcf apr-1.4.6.tar.gz -C /usr/local/apr/
    cd /usr/local/apr/apr-1.4.6
    ./configure --prefix=/usr/local/apr
    make
    make install
    ///////////////////
    ./configure --help 可以看帮助. --prefix=/usr/local/apr是配置安装目录, apr最终安

    装在/usr/local/apr下.
    make - 编译apr
    make install - 安装, 就是将include, lib, bin文件拷贝到/usr/local/apr下, 并建立相

    应的目录结构.

    第二步: 编译apr-util
    apr-util需要以来apr, 所以需先编译apr
    tar -xcf apr-util-1.5.2.tar.gz -C /usr/local/apr-util/
    cd /usr/local/apr-util/apr-util-1.5.2
    ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
    make
    make install
    ////////////////////////
    --with-apr - 此option指明apr的路径

    第三步: 编译log4cxx
    解压->到解压后的目录
    ./configure --prefix=/usr/local/log4cxx/ --with-apr=/usr/local/apr/ --with-

    apr-util=/usr/local/apr-util/
    make
    ////////////
    make过程中, 会遇到错误发生
    第一个错误:
    inputstreamreader.cpp:66: error: 'memmove' was not declared in this scope
    memmove没有申明, 查linux编程文档, memmove在string.h中申明.

    ./src/main/cpp/inputstreamreader.cpp -> 增加 #include <string.h>

    ./src/main/cpp/socketoutputstream.cpp -> 增加 #include <string.h>

    ./src/examples/cpp/console.cpp -> 增加 #include <stdio.h> #include <string.h>

    ///////////////
    make
    make install

    最后配置/etc/ld.so.conf - 需要root权限
    增加:
    /usr/local/apr/lib
    /usr/local/apr-util/lib
    /usr/local/log4cxx/lib

    若没有root权限, 只有通过LD_LIBRARY_PATH来配置lib path
    vi $HOME/.bash_profile
    增加
    export LD_LIBRARY_PATH=/usr/local/apr/lib:/usr/local/apr-util/lib:/usr/local/log4cxx/lib:.:$LD_LIBRARY_PATH
    source .bash_profile -->生效
    echo $LD_LIBRARY_PATH可以查看.

    ---> OK.

    如何使用, 我没用, 听说log4cxx有内存泄露, 我用了自己写的log代码, 网上有很多简单的用法介绍. 因为别人编写的模块中使用了这个库, 所以这里环境必须配齐.

    敦品厚德 格物致知
  • 相关阅读:
    国内比较优秀的.net论坛源代码收集 [转]
    WEB项目的分拆和布署[转载]
    采用XHTML和CSS设计可重用可换肤的WEB站点
    定时提醒小程序:VBScript
    小集正则表达式
    OO的设计原则
    在.Net内部, 异步委托是如何使用多线程功能的?
    Asp.net工作流程
    漫谈面向对象基石之开闭原则(OCP)(转)
    SQL Server 2008事务日志的[RowLog Contents 0] 字段没人能解析出来?
  • 原文地址:https://www.cnblogs.com/crunchyou/p/3046504.html
Copyright © 2011-2022 走看看