2018-11-22 白微
zlog的官网http://hardysimpson.github.io/zlog/
zlgo github源码下载网https://github.com/HardySimpson/zlog/releases
有网友提供了如下版本,方便其他平台上安装编译,非常感谢!
auto tools版本: https://github.com/bmanojlovic/zlog
我下载的auto tools版本
PC端(Ubuntu)
首先查看下是否已经具有交叉编译环境
echo $PATH
我这里是显示带有"/opt/poky/../arm-poky-linux-gnueabi"
然后可以去编译源码
cd 到源码目录
unzip zlog-master.zip
cd zlog-master/
mkdir install
chmod +x autogen.sh
./autogen.sh
./configure --host=arm-poky-linux-gnueabi --prefix=/.../zlog/zlog-master/install/
make install
此时已经编译成功至当前目录下的install目录里
进去zlog_install目录的lib里,查看是否已经是你的下位机适用库
file libzlog.so.1.1.0
显示:libzlog.so.1.1.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=59cdf007aadd8a298b9f8a7f9df54b7f3919174a, not stripped
表示已经是下位机可执行的zlog库;该工具已经编译成功,将install里面的东西打包成.gz文件 tar czvf zlog_master.tar.gz install/,scp 给下位机直接解压到根目录下
接下来开始编写测试程序:
mkdir zlog_test
cd zlog_test
touch test_hello.c
vi test_hello.c
1 #include <stdio.h> 2 3 #include "zlog.h" 4 5 6 7 int main(int argc, char** argv) 8 9 { 10 11 int rc; 12 13 zlog_category_t *c; 14 15 rc = zlog_init("test_hello.conf"); 16 17 if (rc) { 18 19 printf("init failed\n"); 20 21 return -1; 22 23 } 24 25 c = zlog_get_category("my_cat"); 26 27 if (!c) { 28 29 printf("get cat fail\n"); 30 31 zlog_fini(); 32 33 return -2; 34 35 } 36 37 zlog_info(c, "hello, zlog"); 38 39 zlog_fini(); 40 41 return 0; 42 43 }
在同目录下新建test_hello.conf,编辑输入
[formats] simple = "%m%n" [rules] my_cat.DEBUG >stdout; simple
在同目录下新建Makefile
all:clean test test_hello.o test_hello test: $(CC) -o test test.c test_hello.o: $(CC) -c -o test_hello.o test_hello.c -I/../zlog-master/install/include test_hello: $(CC) -o test_hello test_hello.o -L/../zlog-master/install/lib -lzlog -lpthread clean: rm -f test test_hello.o test_hello
执行make,生成 test_hello
将test_hello和test_hello.conf拷贝至下位机,直接运行./test_hello,打印成功
# ./test_hello
hello, zlog