一、LOG4C简介
现在盛行的Log东西大体有:Log4c,Log4CPP, Log4CXX等。
Log4cxx需求依赖于APR。Log4cpp支撑C++言语。因为项目主要是用C来编写,故而选用Log4c。
Log4c基本上都是一些纯c的东西,在渠道移植方面,比前二者有优势。
二、开发环境
操作系统:Ubuntu 10.4(linux kernel-v2.6.31)
移植Linux内核版别:2.6.30
穿插编译东西:arm-linux-gcc 4.3.2
三、下载LOG4C及EXPAT东西源代码
LOG4C源代码的下载地址:
http://nchc.dl.sourceforge.net/project/log4c/log4c/1.2.1/log4c-1.2.1.tar.gz
EXPAT东西源代码的下载地址:
http://nchc.dl.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz
四、用arm-linux-gcc编译EXPAT
建两个目录:tools_source tool_build。其间LOG4C及EXPAT的压缩包都放在tools_source目录中。进入tools_build目录。在提示符下输入以下指令:
> mkdir expat_build
> tar –zxvf ../tools_source/expat-2.0.1.tar.gz
> cd expat_build
> ../expat-2.0.1/configure –prefix=/opt/tools/tools_build/expat_build/ –libdir=/opt/tools/tools_build/expat_build/ –enable-shared –host=arm-linux CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc
> make install
在/opt/tools/tools_build/expat_build/下便会看到你所需求的.so库了,如图1所示:
图1
将expat_build/include目录下一切的.h文件拷贝到/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/目录中。
将expat_build/目录下一切的.so文件拷贝到/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib目录中。
五、用arm-linux-gcc编译LOG4C
进入tools_build目录。在提示符下输入以下指令:
> mkdir log4c_build
> tar –zxvf ../tools_sournce/log4c-1.2.1.tar.gz
> cd log4c_build
> ../log4c-1.2.1/configure –prefix=/opt/tools/tools_build/log4c_build/ –libdir=/opt/tools/tools_build/log4c_build/ –enable-shared –with-gnu-ld –host=arm-linux CC=arm-linux-gcc CPPFLAGS=-I/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/ LDFLAGS=-L/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib
> make install
假如提示图2所示的过错:
图2
修正log4c_build/log4c-1.2.1/src/config.h.in文件:
将201行的#undef malloc注释掉。
将204行的#undef realloc注释掉。
然后将tools_build/build目录下文件悉数删去,从头履行以下指令:
> ../log4c-1.2.1/configure –prefix=/opt/tools/tools_build/log4c_build/ –libdir=/opt/tools/tools_build/log4c_build/ –enable-shared –with-gnu-ld –host=arm-linux CC=arm-linux-gcc CPPFLAGS=-I/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/ LDFLAGS=-L/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib
> make install
在build目录下,你将看LOG4C的.so库文件现已生成了,如图3所示:
图3