一)解压下载的log4c-1.2.4.tar.gz源码,进入文件夹中,打开README,编译的过程可以按照里面的流程
$mkdir build; $cd build $../log4c-1.2.4/configure --prefix=/path/of/installation $make $make install
假如我们要安装的目录为/home/abc/a,则上面第三句则为
$../log3c-1.2.4/configure --prefix=/home/abc/a
如果你是为了在其他平台运行的话,比如ARM平台,则可以用如下指令
$../log3c-1.2.4/configure --prefix=/home/abc/a --host=arm-linux --without-expat
没加without--expat的话要在你的电脑安装适于交叉环境的expat才能正常编译。
这样执行出来的结果是多了一个build目录,这里面不仅包含了Makefile文件,还包含了example生成的可执行文件,另外还在/home/abc/a下多了安装的log4c等文件,包含了运行库lib,头文件等.这个是自己编写程序运行的关键部分.
二)如果你只是想运行一个example下的文件的话,可以运行build中的example中的可执行文件,日志的输出配置是在log4crc中配置的,不用去修改example中的C语言源码再重新编译,从这个角度出现的话,可以体会一下log4crc配置日志代码的功能.
三)下面介绍的是用学有源码example中的helloworld.c为我们的主文件,编译可执行的文件.一般一个具体的有日志功能的工程包含下面几类文件:
1)用户自定义c语言源文件,*.c与*.h
2)log4c运行库文件与依赖头文件,这个看你个人存放的目录,像我之前的目录就是/home/abc/a中,里面的文件有
我们程序要用到的是lib中的动态链接库和include中的文件.
3)log4crc文件,这个是配置输出的日志的格式等,一般一个最简单的可编译文件下最少有一个.c文件和一个log4crc文件.
在该目录下打开终端,输入如下开始编译
gcc -g -Wall -O0 helloworld.c -o helloworld -L/home/abc/a/lib -llog4c -I/home/abc/a/include
这样就会编译与功了.
4)修改一下log4crc文件,其他大部分的log4crc文件都是类似的,你可以打开文件,看有没有以下三句,如果没有的话,添加进去,有的话可以不会,可能有添加的是第一行.
<category name="log4c.examples.helloworld" priority="debug" appender = "stdout"/> <appednder name="stdout" type="stream" layout="basis"/> <layout name="basic" type="basic"/>
5)运行程序
./helloworld
会输出如下的信息:
[stdout] ERROR log4c.examples.helloworld - Hello World!
到此,我们的编译就自算完成了,其他的应用也是在这样的环境中添加更多的功能.祝各位好运.
附:Helloworld.c的程序
#ifdef HAVE_CONFIG_H #include "config.h" #endif #include <stdio.h> #include "log4c.h" int main(int argc, char** argv){ int rc = 0; log4c_category_t* mycat = NULL; if (log4c_init()){ printf("log4c_init() failed"); rc = 1; }else{ mycat = log4c_category_get("log4c.examples.helloworld"); log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "Hello World!"); /* Explicitly call the log4c cleanup routine */ if ( log4c_fini()){ printf("log4c_fini() failed"); } } return rc; }