前面有一篇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代码, 网上有很多简单的用法介绍. 因为别人编写的模块中使用了这个库, 所以这里环境必须配齐.

转载于:https://www.cnblogs.com/crunchyou/archive/2013/04/27/3046504.html

log4cxx编译过程–linux相关推荐

  1. 6选择内核启动项_Linux 2.6内核编译过程

    内核编译过程 Linux 2.6内核从配置,到编译,再到安装的命令非常简单,只要按顺序执行下面几个命令就可完成: 1.内核配置:make menuconfig 2.内核编译:make 3.安装模块:m ...

  2. 【Linux】Linux添加系统调用以及内核编译过程

    在想要替换原有系统内核或者需要在原来的系统中添加一些系统调用的时候就会涉及到Linux内核的编译.但是内核编译虽然步骤简单,但是需要注意的东西还是太多了.首先一点就是由于Linux的开源性导致的版本问 ...

  3. C语言——程序的编译+链接(linux+gcc实现过程)

    文章目录 前言 一.预处理 1.预处理阶段的操作: 1.预处理过程实现: 二.编译 1.编译阶段的操作: 2.编译过程的实现: 三.汇编 1.汇编阶段的操作: 2.汇编过程的实现: 四.链接 1.链接 ...

  4. Linux ffmpeg的安装编译过程

    Linux ffmpeg的安装编译过程 1.下载ffmpeg.     在网上搜索一下,或者到官方网站下载 2.解压    tar命令解压 3.配置 ./configure --enable-shar ...

  5. Linux下Gcc 的编译过程

    在linux下开发难免会用到gcc编译.GCC(GNU Compiler Collection.GNU编译器套装),是由 GNU 开发的编程语言编译器.它是GNU编译器套装以GPL许可证所发行的自由软 ...

  6. 一个C程序的编译过程(Linux环境下Gcc)

    一 以下是C程序一般的编译过程: 从图中看到: 将编写的一个c程序(源代码 )转换成可以在硬件上运行的程序(可执行代码 ),需要进行编译阶段  和链接这两个阶段. 其中, 1.  编译阶段先通过&qu ...

  7. linux内核2.6.35编译过程

    一.实验目的 学习重新编译Linux内核,理解.掌握Linux内核和发行版本的区别. 二.实验内容 在Linux操作系统环境下重新编译内核.实验主要内容: A. 查找并且下载一份内核源代码,本实验使用 ...

  8. linux下gcc的编译过程详解

    Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作品之一.gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一 ...

  9. linux内核的配置过程,linux内核的配置机制及其编译过程

    linux内核的配置机制及其编译过程. 一.配置系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: 1.Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linu ...

最新文章

  1. 一根棉签解决身上各种酸痛,立马感觉无比舒畅!
  2. 「拼房」你敢吗?这款App这样玩「陌生人社交」
  3. 浅谈a标签属性href的mailto更多用法
  4. 2016陕西省ACM 热身体B 种类并查集
  5. logback日志pattern_@Slf4j 实现日志输入到外部文件
  6. 姚期智:算法将推动下一波AI浪潮,现有革新将达极限
  7. 全新精美UI口红机闯三关赢礼品源码
  8. nvidia TX2 CUDA yolov5环境搭建
  9. 剑指offer三从头到尾打印链表
  10. mysql增删改查_MySQL的基本使用——简单的增删改查
  11. Javascript--闭包引起的IE内存泄露(转载)
  12. 我工作用的电脑十年没重装过一次系统,我是如何做到的
  13. 笔记本onenote绘画快捷键_怎样设置onenote的快捷键
  14. 计算机上显示找不到无线网络连接,为什么找不到无线网络,电脑上连接WIFI的图标不见了,怎么办?...
  15. 题解【[FJOI2018]所罗门王的宝藏】
  16. OpenJ_Bailian - 3468
  17. word文档使用技巧
  18. 鸿蒙OS原子化服务卡片原理和架构分析
  19. Android近期阅读书籍
  20. 保研面试/考研复试编译原理问题整理

热门文章

  1. 变长参数模板 和 外部模板
  2. 智能指针shared_ptr的几个例子
  3. C++STL中swap函数操作与内存地址改变的简析
  4. 谈谈如何利用 valgrind 排查内存错误
  5. [转]使用gazebo中的building editor创建一个建筑环境并用于仿真
  6. c 语言中unsigned char类型变量占用内存大小,C数据类型
  7. PHP的工作原理和生命周期
  8. PHP、JS 中 encode/decode
  9. 工业4.0的小小思考
  10. vue,一路走来(10)--生产环境