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时出现问题,因为自己编译的固件和官方固件 ...
随机推荐
- Dev之ribbon设置
- Android studio 模拟器中输入中文
Android studio 模拟器中输入中文 学习了:https://blog.csdn.net/feidie436/article/details/78318752?locationNum=10& ...
- STL源代码剖析 容器 stl_map.h
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie map ------------------------------------------ ...
- CLR_Via_C#学习笔记之事件
一:首先我先引用网上别人对事件的一些说明,然后将会通过一个事例进行对事件的演示: EventArgs是包含事件数据的类的基类,用于传递事件的细节.EventHandler是一个委托声明如下 publi ...
- maven的profile 目录、变量打包
<project> <build> <finalName>maven-project</finalName> <resources> < ...
- 获取SQL Server的安装时间
近期安装SQL Server 2014时.还没有正式的License,仅仅能试用3个月.想知道什么时候到期,就要知道SQL Server 2014是什么时候安装的.假设你没有特意记录安装日期(实际大部 ...
- Solr4.0使用
http://blog.sina.com.cn/s/blog_64dab14801013k7g.html Solr简介 Solr是一个非常流行的,高性能的开源企业级搜索引擎平台,属于Apache Lu ...
- linux 下远程连接mysql命令详解
http://hi.baidu.com/aaxh/blog/item/49bcb78ffe3dfae4f01f36b2.html一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注 ...
- 解决在开发环境中访问json配置文件时报HTTP 错误 404.3 - Not Found
问题描述: 在做demo时,使用json文件做配置文件,访问时,http状态提示:404.3错误,经验证json确认存在,路径也没有问题, 在浏览器地址栏里直接访问json时也提示同样的错误, 根据错 ...
- php创建对象。真!变!态!
PHP创建类的方式,真是够变态,以下是创建方式: 假设类: class SomeClass {//....} 创建对象: 1.直接通过类名实例化 $obj1 = new SomeClass(); 这种 ...