说明:
Zlog是个开源的纯C日志库,详细介绍自己网上搜索了解。移植到ARM开板–335X的步骤和验证简单做个笔记。
准备工作:
下载:
Github上下载版本1.2.15,地址:
移植过程:
参考:https://blog.csdn.net/lz_obj/article/details/78656181
宿主机Ubuntu上建立目录保存zlog的工程文件,步骤如下:
cd /home/
mkdir zlog
cd zlog/
mkdir armzlog
cd armzlog/
复制本地上的zlog目录到/home/zlog/armzlog目录内:
cp -R /mnt/hgfs/vmshare/zlog-1.2.15/ ./
cd zlog-1.2.15/
设置交叉编译用的编译器,根据自己宿主机的情况设置:
make CC=arm-none-linux-gnueabi-gcc
指定编译后的安装目录,编译后的库文件在此路径下:
make PREFIX=/home/zlog/armzlog/ install
cd /home/zlog/
zip -ry armzlog.zip armzlog/*
上面所有操作完毕后,打包zip是整个项目打包,可以不要这步操作,直接复制.so文件到指定目录也行。
编译后的库文件如下:
libzlog.a libzlog.so libzlog.so.1 libzlog.so.1.2
把上面的库文件上传到开板,通过NFS方式,这样可以方便文件交换在ARM和Linux之间,具体配置方法参考网络上的其他笔记。
在开发板上输入如下:
mount -t nfs 192.168.35.42:/home/lin /mnt/nfs/ -o nolock
在ubuntu系统上的home/lin目录下新建一个目录存放lib文件
mkdir zlog_arm_lib
cd zlog_arm_lib/
cp /home/zlog/armzlog/lib/* ./
再查看ARM板的目录:
ARM上也新建一个目录,将NFS共享的文件夹中的4个库文件复制到新建目录里,要不开发板断电了每次要重新NFS一下:
cd home/
mkdir armzlog
cd armzlog/
mkdir lib
cd lib/
cp /mnt/nfs/zlog_arm_lib/* ./
cp libzlog.so.1.2 /lib/
cd /lib/
ln -s libzlog.so.1.2 libzlog.so.1
ln -s libzlog.so.1 libzlog.so
测试zlog:
建立的工程为了可以在与开发板连接后单步调试,这里使用VS2019+VISUALGDB(该插件网络上搜索安装后即可)。
建立工程的步骤省略,自行网络搜索参考一下即可。
工程建立完成后,注意要指定库的目录和库名,具体如下所示:
选择Makefiles settings项,填写包含目录和库名:
include directories:/home/zlog/armzlog/include
library directories:/home/zlog/armzlog/lib
library names: pthread zlog
测试代码:
#include <stdio.h>
#include "zlog.h"
int main(int argc, char** argv)
{
int rc;
zlog_category_t* c;
rc = zlog_init("/home/armzlog/test_hello.conf");
if (rc)
{
printf("init failed\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;
}
代码中的test_hello.conf配置文件,放到开发板指定目录:/home/armzlog
经过上面的折腾后,工程可以单步调试了…
最后编译,运行即可。