1. 确保安装了cmake
2. 编译安装lua
$ curl -R -O http://www.lua.org/ftp/lua-5.4.1.tar.gz
$ tar zxf lua-5.4.1.tar.gz
$ cd lua-5.4.1
$ sudo make all test
$ sudo make install
3.编译安装 libubox
# a. 创建编译目录并进入到编译目录
$ mkdir /home/xxxx/uci_compile
$ cd /home/xxxx/uci_compile
# b.下载 libubox 源码并进入到源码目录
$ git clone http://git.nbd.name/luci2/libubox.git libubox
$ cd libubox
# c.编译 libubox 源码
注意如果要交叉编译,这里指定编译器,如果直接在ubuntu20中编译则不用指定
$ export CC=arm-linux-gcc //我这里不指定交叉编译器,直接使用gcc
$ cmake -DBUILD_LUA=off
$ cmake CMakeLists.txt
$ sudo make
$ sudo make install //会自动安装到/usr/local
4.编译libuci
# a.下载libuci源码并进入到源码目录
$ cd /home/xxxx/uci_compile
$ git clone https://git.openwrt.org/project/uci.git libuci
$ cd libuci
# b. 同上,根据需求确定是否进行 交叉编译
$ export CC=arm-linux-gcc //我这里不使用交叉编译,所以不执行这条指令
$ cmake -DBUILD_LUA=off
$ cmake CMakeLists.txt
$ sudo make
$ sudo make install //会自动安装到 /usr/local
验证
坑!!!!
找原因
解决办法
提示找不到 libuci.so
,建立软连接
ldd /usr/local/bin/uci
又提示找不到libubox.so
问题是刚才在编译时已经install了呀,百思不得其解。
再次执行libubox.so
安装命令
仍然未解决。
百度查找找到解决方案
参考:https://www.cnblogs.com/rungirl/p/12456203.html
执行
sudo /sbin/ldconfig -v
- 作用为:使依赖路径生效
再次验证
成功安装。
至此可以在linux下测试openwrt中的uci控制程序了。
参考连接:
- https://blog.youkuaiyun.com/hexf9632/article/details/109839659?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.no_search_link&spm=1001.2101.3001.4242.1&utm_relevant_index=3
- https://blog.youkuaiyun.com/rainforest_c/article/details/70142987
- https://www.cnblogs.com/rungirl/p/12456203.html
- https://blog.youkuaiyun.com/rainforest_c/article/details/70139962