ubus库包使用
上一篇文章介绍了移植ubus相关的库包,本篇文章来验证移植的库包是否正确。
编译平台:Ubuntu 14.04
目标板平台:mt7688
代码的主要目录如下:
include、libs、Makefile、src
其中,include存放的是所移植的库包的头文件
libs存放的是移植的库包的动态库
src下存放的测试源码.c/.cpp,我这里比较简单,主要是为了测试ubus的功能,所以就2个源文件
Makefile就是整个目录的自动编译的规则,Makefile执行的时候会生成一个obj_mipsel,该目录下是源码的依赖.d文件和.o文件
由于Makefile写的不是很好,编译2个源码是要编译两次,才能分别产生下面两个文件 mipsel-ubus-server,mipsel-ubus-client
编译过程中遇到了一个问题
error adding symbols: DSO missing from command line
查看相关的资料之后,发现是GNU的ld连接器的问题,修复的方法也很简单,
给LDFLAGS加上相关的参数,LDFLAGS+=-Wl,--copy-dt-needed-entries
把编译好的mipsel-ubus-server和mipsel-ubus-client拷贝到目标板
先运行mipsel-ubus-server
提示缺少libuv.so.1动态库,我们把移植好的这个库拷贝到板子的/usr/lib目录下,再次运行mipsel-ubus-server
可以看到正确运行,我们在运行mipsel-ubus-client
可以看到测试的ubus客户端正常运行,说名我们所移植的相关的库包是正确的,在这里也可以调用ubus的API来验证
可以看到打印的结果是一样的。
参考文章:https://segmentfault.com/a/119000000246270
https://blog.****.net/jasonchen_gbd/article/details/46055885
http://blog.chinaunix.net/uid-29767867-id-5606727.html