前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全志平台Tina系统第三方软件包移植缺少库依赖解决办法

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

作者头像
阿志小管家
发布2024-02-02 14:48:06
2140
发布2024-02-02 14:48:06
举报
文章被收录于专栏:全志嵌入式那些事

全志平台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.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全志平台Tina系统第三方软件包移植缺少库依赖解决办法
    • 【适用范围】
      • 【问题现象】
        • 【复现步骤】
          • 【解决方案】
            • 【验证方法】
              • 【注意事项】
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档