由于项目的需要,需要把openwrt 上的ubus库移植到ARM上,ubus是用于openwrt内部模块间通信的库,类似于D-BUS,不过是它的一个精简版,具体的可以到openwrt官网上去了解。


宿主机为 ubuntu 10.04  交叉编译工具链版本为 arm-linux-gcc 4.5.1,目标机为   s3c6410/s5pv210


源码为ubus-2014-09-17-4c4f35cf2230d70b9ddd87638ca911e8a563f2f3.tar.gz,具体的步骤如下:

1.解压源码

2.修改CMakeList.txt配置如下:

在开头加上如下几句,可以看到它依赖libubox,关于libubox可以参看我的另一篇文章,openwrt libubox移植到ARM上

#告知当前使用的是交叉编译方式,必须配置
SET(CMAKE_SYSTEM_NAME Linux)
#指定C交叉编译器,必须配置
#或交叉编译器使用绝对地址
SET(CMAKE_C_COMPILER "arm-linux-gcc")

#指定C++交叉编译器
SET(CMAKE_CXX_COMPILER "arm-linux-g++")

include_directories("/root/softwares/openwrt-a8/json-c/include/json-c")
include_directories("/root/softwares/openwrt-a8/json-c/include")
link_directories("/root/softwares/openwrt-a8/json-c/lib")

include_directories("/root/softwares/openwrt-a8/libubox/include")
link_directories("/root/softwares/openwrt-a8/libubox/lib")

3.cmake .

4.make 

5.在源码根目录即可生成库和可执行文件

ubusd 为ubus服务

ubus 为ubus客户端




Logo

更多推荐