全志平台Tina系统第三方软件包移植缺少库依赖解决办法

全志平台Tina系统第三方软件包移植缺少库依赖解决办法

【适用范围】

全志平台Tina系统

【问题现象】

在移植第三方软件包或库时,编译过程中没有出现问题,但在最后时刻显示missing dependencies for the following libraires:

意味着,编译通过,但是最后打包时的检查发现缺少库。

这个问题在移植第三方软件包时经常出现,如在编译lcd_test时,显示错误:

 

【复现步骤】

  1. source build/envsetup.sh && lunch 并选择当前方案(tina2.0以上)或source scripts/setenv.sh(tina1.0)
  2. 在make menuconfig中选择编译指定的第三方软件包/库
  3. 在对应软件包目录下执行 mm -B
  4. 编译过程中除最后missing dependencies无其他错误

 

【解决方案】

本问题解决方法很简单,在package Makefile中的Package DEPENDS中增加丢失库文件相应的库名即可,如本例:

增加+libjson-c 即可。

但是用户通常并不知道库名是什么,很多时候也并不是简单的在丢失的库前加lib即可,很多时候开发者碰到这个问题在寻找丢失库的名称时需要耗费很久。

由于本问题是通用问题,如果有其他库missing的解决方法如下。

解决步骤:

1.在out 目录搜索该丢失库,以本例为准:

2.从结果得知本库来自于json-c-0.12包

3.按照Tina Package的标准,可以猜测本名字来源为Package名字json-c,版本号0.12,在/package目录下搜索这两个关键字,可以得到包的来源

4.进入/libs/libjson-c/Makefile,可以看到,与猜测符合,可以确定来自这个库:

5.在Makefile中寻找,我们要找的的库名通常在Package install部分中可以找到对应关系:

6.将名称以+libjson-c的形式加到要移植的第三方库Makefile的DEPENDS:后即可解决问题。

 

【验证方法】

在第三方软件的目录下执行mm -B

编译通过并正确打包即可。

【注意事项】

库名通常和丢失的库名称相近,如丢失libjson-c.so.2,可能丢失的库名为libjson-c

但很多时候,库名可能并不相同,这时候增加不对应的库无法解决问题,而且还会在试探中浪费很多时间。

如:

libcrypto.so 来自于openssl-libs而不是libcrypto.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值