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库包使用_第1张图片

可以看到测试的ubus客户端正常运行,说名我们所移植的相关的库包是正确的,在这里也可以调用ubus的API来验证

ubus库包使用_第2张图片

可以看到打印的结果是一样的。


参考文章:https://segmentfault.com/a/119000000246270

         https://blog.csdn.net/jasonchen_gbd/article/details/46055885

         http://blog.chinaunix.net/uid-29767867-id-5606727.html

你可能感兴趣的:(杂碎知识)