前提:交叉编译好libubox库,可参考libubox交叉编译到mipsel架构处理器MT7628/n(在Ubuntu系统下,编译出openwrt系统可运行库)
1、下载libuci.git源码
#git clone https://git.openwrt.org/project/uci.git uci
#cd uci
2、修改CMakeLists.txt
2.1添加安装目录,编译工具,依赖
SET(TOOLCHAIN_DIR "/usr/local/openwrt14.07/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2")
INCLUDE_DIRECTORIES(${TOOLCHAIN_DIR}/include/json-c)
INCLUDE_DIRECTORIES(${TOOLCHAIN_DIR}/include/)
LINK_DIRECTORIES(${TOOLCHAIN_DIR}/lib)
INCLUDE_DIRECTORIES(${TOOLCHAIN_DIR}/usr/include/libubox)
INCLUDE_DIRECTORIES(${TOOLCHAIN_DIR}/usr/include/)
LINK_DIRECTORIES(${TOOLCHAIN_DIR}/usr/lib)
SET(CMAKE_INSTALL_PREFIX ${TOOLCHAIN_DIR})
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/mipsel-openwrt-linux-g++)
SET(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/mipsel-openwrt-linux-gcc)
说明:
TOOLCHAIN_DIR :为OpenWrt SDK 编译工具的根目录
CMAKE_INSTALL_PREFIX :库安装的根目录
2.2关闭LUA相关功能
OPTION(UCI_DEBUG "debugging support" OFF)
OPTION(UCI_DEBUG_TYPECAST "typecast debugging support" OFF)
OPTION(BUILD_LUA "build Lua binding" OFF)
OPTION(BUILD_STATIC "statically linking uci" OFF)
3、编译
#cmake CMakeLists.txt
#make
#make install