当前位置: 首页 > news >正文

ubus编译_环境搭建

文章目录

  • 一、环境搭建脚本
    • toolChain_jsonc.cmake
    • toolChain_libubox.cmake
    • toolChain_ubus.cmake
    • install.sh
  • 二、测试
    • 出现问题:
  • 三、测试uloop
    • main.c 每5s打印信息

一、环境搭建脚本

准备四个文件
在这里插入图片描述

install.sh,toolChain_jsonc.cmake,toolChain_libubox.cmake,toolChain_ubus.cmake

toolChain_jsonc.cmake

set(CMAKE_SYSTEM_NAME Linux)
SET(TOOLCHAIN_DIR "/usr")
set(CMAKE_C_COMPILER   ${TOOLCHAIN_DIR}/bin/gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/g++)
set(CMAKE_FIND_ROOT_PATH "/home/yyh/ubus_libs/json-c")
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

toolChain_libubox.cmake

set(CMAKE_SYSTEM_NAME Linux)
SET(TOOLCHAIN_DIR "/usr")
set(CMAKE_C_COMPILER   ${TOOLCHAIN_DIR}/bin/gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/g++)
set(INSTALL_PATH "/home/yyh/ubus_libs/install_build_ubuntu")include_directories(${INSTALL_PATH}/include)
include_directories(${INSTALL_PATH}/include/json-c)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)set(CMAKE_FIND_ROOT_PATH "/home/yyh/ubus_libs/ubox") # or libubox
set(json "/home/yyh/ubus_libs/install_build_ubuntu/lib/libjson-c.so")

toolChain_ubus.cmake

set(CMAKE_SYSTEM_NAME Linux)
SET(TOOLCHAIN_DIR "/usr")
set(CMAKE_C_COMPILER   ${TOOLCHAIN_DIR}/bin/gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/g++)set(INSTALL_PATH "/home/yyh/ubus_libs/install_build_ubuntu")
include_directories(${INSTALL_PATH}/include)
set(CMAKE_FIND_ROOT_PATH "/home/yyh/ubus_libs/ubus" $(INSTALL_PATH)) 
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)set(blob_library     ${INSTALL_PATH}/lib/libblobmsg_json.so)
set(json             ${INSTALL_PATH}/lib/libjson-c.so)
set(ubox_include_dir ${INSTALL_PATH}/include/libubox)
set(ubox_library     ${INSTALL_PATH}/lib/libubox.so)

install.sh

#!/bin/bash
# @Author: yyh
# @Date:   2023-03-08 13:32:27
# @Last Modified by:   yyh
# @Last Modified time: 2023-03-08 17:09:22LIBS_DIR=/home/yyh/ubus_libsLIB_LIBUBOX_DIR=libubox
LIB_UBUS_DIR=ubus
LIB_JSONC_DIR=json-cCOMPILE_EV=install_build_ubuntuif [[ $1 = "git_libs" ]]; thenmkdir $LIBS_DIR -pcd $LIBS_DIRgit clone https://github.com/json-c/json-c.gitgit clone http://git.openwrt.org/project/libubox.gitgit clone https://git.openwrt.org/project/ubus.git
fiif [[ $1 = "compile_lib" ]]; thencp *.cmake $LIBS_DIRcd $LIBS_DIRmkdir ${LIBS_DIR}/${COMPILE_EV} -pcd ${LIBS_DIR}/$LIB_JSONC_DIRcmake -DCMAKE_INSTALL_PREFIX=${LIBS_DIR}/${COMPILE_EV} -DCMAKE_TOOLCHAIN_FILE=${LIBS_DIR}/toolChain_jsonc.cmake .# cmake -DCMAKE_INSTALL_PREFIX=/home/yyh/ubus_libs/install_build_ubuntu -DCMAKE_TOOLCHAIN_FILE=/home/yyh/ubus_libs/toolChain_jsonc.cmake .makesudo make installsudo ldconfig -vcd ${LIBS_DIR}/$LIB_LIBUBOX_DIRcmake -DBUILD_LUA=OFF -DCMAKE_INSTALL_PREFIX=${LIBS_DIR}/${COMPILE_EV} -DCMAKE_TOOLCHAIN_FILE=${LIBS_DIR}/toolChain_libubox.cmake .# cmake -DCMAKE_INSTALL_PREFIX=/home/yyh/ubus_libs/install_build_ubuntu -DCMAKE_TOOLCHAIN_FILE=/home/yyh/ubus_libs/toolChain_libubox.cmake .makesudo make installcd ${LIBS_DIR}/$LIB_UBUS_DIRcmake -DBUILD_LUA=OFF -DCMAKE_INSTALL_PREFIX=${LIBS_DIR}/${COMPILE_EV} -DCMAKE_TOOLCHAIN_FILE=${LIBS_DIR}/toolChain_ubus.cmake .#cmake -DCMAKE_INSTALL_PREFIX=/home/yyh/ubus_libs/install_build_ubuntu -DCMAKE_TOOLCHAIN_FILE=/home/yyh/ubus_libs/toolChain_ubus.cmake .makesudo make installfi

二、测试

安装相关库

sudo apt-get install libjsoncpp-dev 
sudo apt-get install zmap
sudo apt-get install autoconf automake libtool
sudo apt install lua5.1
chmod +x ./install.sh
./install.sh git_libs
./install compile_lib

在这里插入图片描述

出现问题:

/home/yyh/ubus_libs/libubox/blobmsg_json.c:23:11: fatal error: json/json.h: 没有那个文件或目录23 |  #include <json/json.h>|           ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/blobmsg_json.dir/build.make:63:CMakeFiles/blobmsg_json.dir/blobmsg_json.c.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:211:CMakeFiles/blobmsg_json.dir/all] 错误 2
make: *** [Makefile:130:all] 错误 2解决:
sudo cp  /home/yyh/ubus_libs/install_build_ubuntu/include/json-c /home/yyh/ubus_libs/install_build_ubuntu/include/json	 -rf

三、测试uloop

在这里插入图片描述

makefile

CC = gcc
CFLAGS = -I./include -L./lib  -lubox -lubus#-lblobmsg_json -ljson_script -ljson-c  
TARGET = main_ubuntuall:$(CC) -o $(TARGET) main.c $(CFLAGS).PHONY:clean
clean:rm -rf *.o $(TARGET)

main.c 每5s打印信息

/*
* @Author: yyh
* @Date:   2023-03-08 17:17:35
* @Last Modified by:   yyh
* @Last Modified time: 2023-03-08 17:40:41
*/
/*
typedef void (*uloop_timeout_handler)(struct uloop_timeout *t);
struct uloop_timeout
{struct list_head list;bool pending;uloop_timeout_handler cb;struct timeval time;
};
*/#include <stdio.h>
#include "./libubox/uloop.h"static void timeout_handler(struct uloop_timeout *timeout)
{printf("(hello world)\n");
}static struct uloop_timeout timer = {.cb = timeout_handler,
};int main(int args, char *argv[])
{uloop_init();uloop_timeout_set(&timer, 5000);    // 5suloop_run();return 0;
}
http://www.lryc.cn/news/34453.html

相关文章:

  • 移动通信(16)信号检测
  • 数据结构与算法之《顺序表》
  • MySQL索引15连问,抗住!
  • 【服务器管理】手动部署LNMP环境(CentOS 8)(非阿里云版本)
  • 论文笔记:Positive-incentive Noise
  • 340秒语音芯片,轻松实现语音交互,畅享智能生活WTV380语音ic方案
  • 有java基础学习大数据该如何规划
  • 【Java基础】HashMap的底层数据结构是怎样的?
  • MongoDB5副本集高可用集群部署
  • 【Java】最新版本SpringCloudStream整合RocketMQ实现单项目中事件的发布与监听
  • abp.net 5.0 部署IIS10
  • Windows安装Qt与VS2019添加QT插件
  • 自学大数据第5天~hadoop集群搭建(二)
  • MySQL (六)------MySQL的常用函数、 事务(TCL)、DCL用户操作语句、常见环境、编码问题
  • 【3.8】操作系统内存管理、Redis数据结构、哈希表
  • Shell编程:轻松掌握入门级Shell脚本,成为Shell高手
  • FastApi的搭建与测试
  • C++基础——C++面向对象之重载与多态基础总结(函数重载、运算符重载、多态的使用)
  • 调用一个函数时发生了什么?
  • MindAR的网页端WebAR图片识别功能的图片目标编译器中文离线版本功能(含源码)
  • 测试经理:“你做了三年测试,连服务端的接口测试都不会?”
  • 4G AFR到5G应用场景介绍
  • 正电源子 IMX6ULL 自学笔记(驱动开发)
  • AM5728(AM5708)开发实战之移植OpenCV-3.4.11
  • Notepad++ 下载与安装教程
  • 005+limou+HTML——(5)HTML图片和HTML超链接
  • ES6 Generator
  • SCI期刊写作必备(二):代码|手把手绘制目标检测领域YOLO论文常见的性能对比折线图,一键生成YOLOv7等主流论文同款图表,包含多种不同功能风格对比图表
  • linux cpu飙高排查
  • 2023实习面试公司【二】