一、 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
修改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