获取安装在Yocto bin_package中的库的依赖列表。

问题描述 投票:0回答:1

我在使用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上执行该命令,比较一下输出结果,发现缺少什么...... 先谢谢你了!

dependencies libraries yocto
1个回答
0
投票

你可以在这里欣赏这个美丽的怪兽。metaclassespackage.bbclass::package_do_shlibs() -- 但我会从调试开始,先对两个圆球中的库和二进制文件运行一个稍微简单的oneliner。

objdump -p libcustom.so | grep NEEDED
© www.soinside.com 2019 - 2024. All rights reserved.