libubox
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
[ %] Built target blobmsg_json-static
[ %] Built target ubox-static
[ %] Built target ubox
[ %] Built target blobmsg_json
[ %] Built target jshn
[ %] Built target json_script
[ %] Built target blobmsg-example
[ %] Built target runqueue-example
[ %] Built target ustream-example
[%] 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 [4] - uloop runqueue ustream
libubox的更多相关文章
- openWrt libubox组件之uloop原理分析
1. libubox概述 libubox是openwrt新版本中的一个基础库,有很多应用是基于libubox开发的,如uhttpd,netifd,ubusd等. libubox主要提供以下两种功 ...
- libubox组件(3)——uloop
一:uloop概述 uloop有三个功能: 文件描述符触发事件的监控, timeout定时器处理, 当前进程的子进程的维护 二: uloop的整体框架 1: /** 2: * 初始化事件循环 3: ...
- libubox组件(1)——usock
一:相关API介绍 1.相关源码文件:usocket.h usocket.c 2.类型标志 1: #define USOCK_TCP 0 2: #define USOCK_UDP 1 3: #defi ...
- libubox组件(2)——blob/blobmsg (转载 https://segmentfault.com/a/1190000002391970)
一:blob相关接口 1.数据结构 1: struct blob_attr { 2: uint32_t id_len; /** 高1位为extend标志,高7位存储id, 3: * 低24位存储dat ...
- CWMP开源代码研究2——easycwmp安装和学习
声明:本文是对开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅号:408797506) 本文所有笔记和代码可以到csdn下载:http://download.csdn.n ...
- easycwmp的交叉编译
原创作品,转载请注明出处 copyright:weishusheng 2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.e ...
- OpenWrt镜像编译和ipv6支持
离成功实现路由器刷OpenWrt.接入校园网差不多一年了.路由工作比较稳定,还是很满意的. 这次回来有个新发现:学校有原生ipv6支持,在win7和ubuntu下什么都不用设置,自动获取global ...
- Openwrt 初探
最近想研究一下Openwrt,于是开始搭建openwrt环境,虽然现在没有现成的板子,但是 可以先编译起来. openwrt的特点是基于下载 -> patch -> 编译 的一个工作模式, ...
- 使用 OpenWrt Image Generator 为 WR703N 路由器定制固件
标题:使用 OpenWrt Image Generator 为 WR703N 路由器定制固件 之前试着自己编译固件,编译是成功了,但是在后期安装官方仓库的ipk时出现问题,因为自己编译的固件和官方固件 ...
随机推荐
- OIT
https://matthewwellings.com/blog/depth-peeling-order-independent-transparency-in-vulkan/ depth peeli ...
- HQL语句中数据类型转换,及hibernate中createQuery执行hql报错
一.HQL语句中数据类型转换: 我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基 ...
- C# format 日期 各种 符号 实例分析如何精确C#日期格式到毫秒
摘 自: http://developer.51cto.com/art/200908/141145.htm 实例分析如何精确C#日期格式到毫秒 2009-08-03 10:48 paulfzm jav ...
- IDEA java开发 Restful 风格的WebService
官网:https://www.jetbrains.com/help/idea/restful-webservices.html 1.在IntelliJ中创建新项目,选择Java Enterprise ...
- thinkphp5.0 中使用第三方无命名空间的类库
ThinkPHP5建议所有的扩展类库都使用命名空间定义,如果你的类库没有使用命名空间,则不支持自动加载,必须使用Loader::import方法先导入文件后才能使用. 首先要在文件头部使用loader ...
- LeetCode Add Binary |My Solution
Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...
- Win7如何更改网络位置,如何加入或创建家庭组
1 打开网络和共享中心,点击连接上网的哪一个网络,点击把公用网络改为家庭网络 2 依次执行下一步 3 如果是加入一个家庭组,则输入家庭组的密码,否则将得到一个家庭组的密码 4 加入成功 ...
- kindeditor 图片上传插件
富文本编辑器,kindeditor是比较好用的一款.需要的功能都有,文档.demo也详细.有什么功能去官网看一眼就好. 官网:http://kindeditor.net/ 一些好用的如图片上传,kin ...
- tornado ThreadPoolExecutor
import os import sys import time import tornado.httpserver import tornado.ioloop import tornado.opti ...
- JMeter 六:Listener
参考:http://jmeter.apache.org/usermanual/listeners.html Listener是用来展示Sampler结果的元件. 结果可以被展示在树.表格.图表或者简单 ...