一)解压下载的log4c-1.2.4.tar.gz源码,进入文件夹中,打开README,编译的过程能够按照里面的流程linux
$mkdir build; $cd build $../log4c-1.2.4/configure --prefix=/path/of/installation $make $make install
假如咱们要安装的目录为/home/abc/a,则上面第三句则为shell
$../log3c-1.2.4/configure --prefix=/home/abc/a
若是你是为了在其余平台运行的话,好比ARM平台,则能够用以下指令app
$../log3c-1.2.4/configure --prefix=/home/abc/a --host=arm-linux --without-expat
没加without--expat的话要在你的电脑安装适于交叉环境的expat才能正常编译。 ui
这样执行出来的结果是多了一个build目录,这里面不只包含了Makefile文件,还包含了example生成的可执行文件,另外还在/home/abc/a下多了安装的log4c等文件,包含了运行库lib,头文件等.这个是本身编写程序运行的关键部分.debug
二)若是你只是想运行一个example下的文件的话,能够运行build中的example中的可执行文件,日志的输出配置是在log4crc中配置的,不用去修改example中的C语言源码再从新编译,从这个角度出现的话,能够体会一下log4crc配置日志代码的功能.
日志
三)下面介绍的是用学有源码example中的helloworld.c为咱们的主文件,编译可执行的文件.通常一个具体的有日志功能的工程包含下面几类文件:code
1)用户自定义c语言源文件,*.c与*.h
ci
2)log4c运行库文件与依赖头文件,这个看你我的存放的目录,像我以前的目录就是/home/abc/a中,里面的文件有
get
咱们程序要用到的是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; }