获取安装在Yocto bin_package中的库的依赖列表。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取安装在Yocto bin_package中的库的依赖列表。相关的知识,希望对你有一定的参考价值。
我在使用Yocto时遇到了一个奇怪的库依赖问题。我在两台不同的构建机上构建Yocto,分别是M_a和M_b,使用的Linux版本完全相同(Ubuntu 16.04.6 LTS)。
libs.tar.bz2 tarball使用 "继承bin_package "在我的rootfs中部署了一些库。配方就这么简单。
$ cat recipe_0.1.bb
inherit bin_package
S = "${WORKDIR}/prebuilt"
SRC_URI = "file://libs.tar.bz2"
INSANE_SKIP_${PN} += "dev-so"
INSANE_SKIP_${PN} = "ldflags"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
当在 M_a 机器上构建时,包含在 tar 包中的库会正确地部署在最终的 rootfs 上。
但是,当在M_b机器上构建时,我得到一个错误。
ERROR: recipe-0.1-r0 do_package_qa: QA Issue: /usr/lib/libcustom.so contained in package recipe requires libglib-2.0.so.0()(64bit), but no providers found in RDEPENDS_recipe? [file-rdeps]
我的问题是,你们有人知道Yocto是如何提取tar包中每个库的依赖列表的吗?我想在M_a和M_b上执行该命令,比较一下输出结果,发现缺少什么...... 先谢谢你了!
答案
你可以在这里欣赏这个美丽的怪兽。metaclassespackage.bbclass::package_do_shlibs() -- 但我会从调试开始,先对两个圆球中的库和二进制文件运行一个稍微简单的oneliner。
objdump -p libcustom.so | grep NEEDED
以上是关于获取安装在Yocto bin_package中的库的依赖列表。的主要内容,如果未能解决你的问题,请参考以下文章