zlog日志库(笔记) —— 编译和安装
编译环境
我的编译环境(WSL1 + VS Code 1.71.0):
OS: Linux 4.4.0
GCC: gcc 5.4.0
编译和安装zlog
下载或fork + clone https://github.com/HardySimpson/zlog
比如,这里是下载安装包zlog-latest-stable.tar.gz。Linux终端输入以下命令进行编译、安装:
$ tar -zxvf zlog-latest-stable.tar.gz
$ cd zlog-latest-stable
$ make
$ sudo make install
# or PREFIX指定安装目录
$ sudo make PREFIX=/usr/local/ install
PREFIX指明了安装路径。如果不用PREFIX指定目录,Linux平台默认安装到系统路径/usr/local;如果用PREFIX指定非默认路径,安装完后,为了让你的程序能找到zlog动态库,需要修改ld.so.conf文件
$ sudo vi /etc/ld.so.conf
/usr/local/lib
# 创建动态装入程序(ld.so)所需的链接和缓存文件
$ sudo ldconfig
其他编译
详见makefile
$ make 32bit # 64bit机器上编译32bit版本, 需要libc6-dev-i386
$ make noopt # 无gcc优化
# make doc # lyx, hevea
$ make test # 编译生成测试程序
注:
lyx是文档处理器,官网https://www.lyx.org/
应用程序如何使用zlog?
通过一个简单的"hello world"示例,看应用程序(APP)如何使用zlog。
1)添加头文件
在APP源码(如app.c)中,添加zlog接口头文件
#include "zlog.h"
2)链接zlog
由于zlog库使用了pthread,因此编译命令需要链接pthread
$ cc -c -o app.o app.c -I/usr/local/include # -I指定头文件搜索目录, 也就是zlog.h所在目录
$ cc -o app app.o -L/usr/local/lib -lzlog -lpthread # -L指定库文件目录, 也就是libzlog.so所在目录
这里app.c是指APP的源码文件,名称可以自定义。
3)新建一个C文件(test_hello.c),包含以下使用zlog库的内容
实际代码存放于$(top_builddir)/test/test_hello.c, test_hello.conf
#include <stdio.h>
#include "zlog.h"
int main(int argc, char *argv[])
{
int rc; /* return code */
zlog_category_t *c;
rc = zlog_init("test_hello.conf");
if (rc) { // error
printf("init fialed\n");
return -1;
}
c = zlog_get_category("my_cat");
if (!c) {
printf("get cat fail\n");
zlog_fini();
return -2;
}
zlog_info(c, "hello, zlog");
zlog_fini();
return 0;
}
4)写一个配置文件(test_hello.conf),跟test_hello.c同目录
注意:内容跟源文件稍有区别。
[formats]
simple = "%m%n"
[ruls]
my_cat.DEBUG >stdout; simple
5)编译、运行
在项目中编译
$ make test
$ cd test
$ ./test_hello
hello, zlog
如果单独编译文件,执行下面命令
$ cc -c -o test_hello.o test_hello.c -I/usr/local/include
$ cc -o test_hello test_hello.o -L/usr/local/lib -lzlog
$ ./test_hello
至此,说明zlib库已经成功安装、使用。