• 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
    [  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

  • 相关阅读:
    《梦断代码》读书笔记(二)
    周总结(十三)
    周总结(十)
    知识圈APP开发记录(十六)
    《梦断代码》读书笔记(一)
    知识圈APP开发记录(十五)
    朴素贝叶斯
    单源最短路径 djkstra
    有向图 拓扑排序 文件依赖下的编译顺序该如何确定?
    《人类简史》读后感
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/6791544.html
Copyright © 2020-2023  润新知