多语言展示
当前在线:805今日阅读:86今日分享:14

libubox配置编译问题解决

概述在我编译easycwmp的时候需要库libubox 和json-c ,我吧json-c直接默认配置编译安装后,路径为/usr/local 下的 头文件在/usr/local/inlude 和 编译的库在/usr/local/lib,这个没有什么问题,但是在根据手册编译libubox的时候就有问题了手册是这样说的,原文如下:libubox=======Get the sources:git clone git://nbd.name/luci2/libubox.git /opt/git/libuboxcd /opt/git/libubox/Configure:cmake CMakeLists.txt -DBUILD_LUA=OFFBuild:makeInstall:sudo make install-- checking for modules 'json-c;json'-- package 'json' not found-- Configuring done-- Generating done-- Build files have been written to: /home/ysj/workspace/tr069/downpackage/libubox第一步:cmake 生成nakefile文件错误cmake CMakeLists.txt -DBUILD_LUA=OFF运行后提示如下错误-- checking for modules 'json-c;json'-- package 'json' not found-- Configuring done-- Generating done-- Build files have been written to: /home/ysj/workspace/tr069/downpackage/libubox说是没有找到json包,这个是我们刚才安装的json,我很少郁闷这是刚安装的呀,进到/usr/local/lib 下发现时json-c 确实不是json ,然后打开文件把PKG_CHECK_MODULES(JSONC json-c json)改为PKG_CHECK_MODULES(JSONC json-c)把json去掉把find_library(json NAMES json-c json)改成find_library(json NAMES json-c)去除json,再执行cmake CMakeLists.txt -DBUILD_LUA=OFF就没有问题了,如图接下来就是make编译了make后提示错误一/home/ysj/workspace/tr069/downpackage/libubox/blobmsg_json.c:78:2: error: implicit declaration of function 鈏s_error?[-Werror=implicit-function-declaration]分析:is_error没有定义,在pc上编译时也遇到这个问题,我们知道他的定义为#define is_error(ptr) (ptr == NULL),于是在blobmsg_json.c添加定义修改后再make编译又提示错误二这换成了另一个错误,不过和刚才的是一个问题,在jshn.c文件中也添加#define is_error(ptr) (ptr == NULL)就可以了如图修改。编译成功提示生成了libubox.a库,然后默认安装make install ,这个没有问题就不说了网上关于这个问题的解决方案很少,在这里把自己碰到的问题贴出来,希望能帮助到大家,多多支持,谢谢!!!
推荐信息