openwrt libubox 移植到ARM上

由于项目的需要,需要把openwrt 上的libubox库移植到ARM上,libubox是openwrt的基础库,是一个事件驱动库,具体的可以到openwrt官网上去了解。


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


源码为libubox-2014-08-04-dffbc09baf71b294185a36048166d00066d433b5.tar.gz,这个库依赖json-c 库,所以要先移植json-c库(json-c-0.11.tar.gz)。

   

json-c 移植比较简单,不作详细说明,具体步骤如下:


1.解压源码 

2. 修改config.h.in 文件,去掉如下几行

/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc


/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc

3.  ./configure --host=arm-linux  --prefix=/root/softwares/openwrt-a8/json-c

4.  make

5 . make install

执行以上几个步骤,即可生成库文件


libubox的移植,由于libubox没有configure之类的,需要用cmake生成Makefile,cmake如果没有,请自行安装。具体的步骤如下:

1.解压libubox源码

2.修改CMakeList.txt文件,在文件最开始处加上如下几句:


#告知当前使用的是交叉编译方式,必须配置
SET(CMAKE_SYSTEM_NAME Linux)

#指定C交叉编译器,必须配置
#或交叉编译器使用绝对地址
SET(CMAKE_C_COMPILER "arm-linux-gcc")

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

#json-c 头文件的路径
include_directories("/root/softwares/openwrt-a8/json-c/include/json-c")   

#json-c 库文件路径

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


3.make


在源码的根目录即可生成库文件





你可能感兴趣的:(开源库移植)