libubox

摘要:
Lubox是openwrt的核心库,它封装了一系列基本的实用函数,主要提供事件循环、二进制格式处理、linux链表实现和一些JSON辅助处理。其目的是以动态链接库的形式提供可重用的通用功能,方便其他模块,并避免重新创建轮子。Libubox主要提供三个功能:1)它提供了多种基本的通用功能接口,包括链表、平衡二叉树、二进制处理、键值链表、MD5等。3)一套事件驱动机制和任务队列管理功能。编译并安装到PC1。修改CMakelists。txt目录,并首先删除lua部分。

lbubox是openwrt的一个核心库,封装了一系列基础实用功能,主要提供事件循环,二进制格式处理,linux链表实现和一些JSON辅助处理。

它的目的是以动态链接库方式来提供可重用的通用功能,给其他模块提供便利和避免再造轮子。

libubox主要提供三部分功能:

1)提供多种基础通用功能接口,包含链表,平衡二叉树,二进制处理,key-value链表,MD5等。

2)socket通信。

3)一套基于事件驱动的机制及任务队列管理功能。

编译安装到PC

1. 修改目录下CMakelists.txt,先去掉lua部分(不使用lua)。

#OPTION(BUILD_LUA "build Lua plugin" ON)
#ADD_SUBDIRECTORY(lua)

2. cmake编译安装

mkdir build; cd build ; cmake .. ; make; make install
[  4%] Built target blobmsg_json-static
[ 38%] Built target ubox-static
[ 72%] Built target ubox
[ 76%] Built target blobmsg_json
[ 80%] Built target jshn
[ 84%] Built target json_script
[ 88%] Built target blobmsg-example
[ 92%] Built target runqueue-example
[ 96%] Built target ustream-example
[100%] Built target json_script-example
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/include/libubox/kvlist.h
-- Up-to-date: /usr/local/include/libubox/json_script.h
-- Up-to-date: /usr/local/include/libubox/blobmsg_json.h
-- Up-to-date: /usr/local/include/libubox/ulog.h
-- Up-to-date: /usr/local/include/libubox/avl-cmp.h
-- Up-to-date: /usr/local/include/libubox/blob.h
-- Up-to-date: /usr/local/include/libubox/runqueue.h
-- Up-to-date: /usr/local/include/libubox/uloop.h
-- Up-to-date: /usr/local/include/libubox/list.h
-- Up-to-date: /usr/local/include/libubox/ustream.h
-- Up-to-date: /usr/local/include/libubox/vlist.h
-- Up-to-date: /usr/local/include/libubox/avl.h
-- Up-to-date: /usr/local/include/libubox/blobmsg.h
-- Up-to-date: /usr/local/include/libubox/safe_list.h
-- Up-to-date: /usr/local/include/libubox/usock.h
-- Up-to-date: /usr/local/include/libubox/md5.h
-- Up-to-date: /usr/local/include/libubox/utils.h
-- Installing: /usr/local/lib/libubox.so
-- Installing: /usr/local/lib/libubox.a
-- Installing: /usr/local/lib/libblobmsg_json.so
-- Set runtime path of "/usr/local/lib/libblobmsg_json.so" to ""
-- Installing: /usr/local/lib/libblobmsg_json.a
-- Installing: /usr/local/bin/jshn
-- Set runtime path of "/usr/local/bin/jshn" to ""
-- Installing: /usr/local/lib/libjson_script.so
-- Set runtime path of "/usr/local/lib/libjson_script.so" to ""
-- Up-to-date: /usr/local/share/libubox/jshn.sh

参考文档:

libubox组件(1)——usock

libubox组件(2)——blob/blobmsg

libubox组件(3)——uloop

BLOB二进制对象(blob.c/h)

libubox [4] - uloop runqueue ustream

免责声明:文章转载自《libubox》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 6.0 动态申请 音频+拍照+相册 权限vant upload图片上传 (file文件)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

php时间戳和日期转换,以及时间戳和星期转换

$this->created_at为时间戳值,转换日期如下 date('m.d',$this->created_at) :  y 代表年的后两位如 17 ,Y 代表 2017  , m 代表数字月,M 代表英文月 ,d代表日,D代表星期 (英文的) 想要显示中文星期,则要:  $weeks =['周一','周二','周三','周四','周五',...

Systemd 介绍与日常使用

Systemd Systemd(system daemon)实现系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销,最终替代init。 Systemd采用了一下新技术: 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能。 采用Cgroups替代PID来追踪进程,即使是两次fork之后生...

IDEA将web项目打成war包

非Maven项目打包方式    按ctrl+滚动鼠标滚轮就能放大浏览器看图片了。或者将图片拖到新窗口打开。 然后点击OK,然后build一下。然后去classes文件夹下面找就能找到打成war包的项目了。 Maven项目打包方式  Rebuild之后会在你项目的target目录中生成war包。 还有一种方式是,通过在Terminal窗口输入maven打...

Informatica 简单使用

1. Informatica简介 ① Repository manager 主要用来维护资料库的目录,对象,建完对象可以创建demo的folder。 ② Administration Console是完全基于web的,管理所有的节点,服务,在里面包括资料库的一些用户,权限等信息。 ③ Designer主要用来设计mapping。Mapping是inform...

用docker启动的oracle,重启后数据库访问失败

昨天更改了oracle数据库的最大连接数,然后手动重启了docker,以为数据库就直接启动了,没想到报错了 报错类似于一下文章 https://blog.csdn.net/h106140873/article/details/103251534 SQL>startup ORA-00821: Specified value of sga_target...

webService 服务端搭建

  首先,下载CXF,官网(http://cxf.apache.org/),具体位置如下图:      解压后,得到以下目录   下面,我们开始建立工程,在新建的工程lib目录下复制上述lib中的所有文件,特别是endorsed文件夹也要原样复制。 1        WebService的服务器端 1)      创建工程   在eclipse/myEcl...