ManjaroKDE安装Yocto eSDK
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ManjaroKDE安装Yocto eSDK相关的知识,希望对你有一定的参考价值。
参考技术A Manjaro版本:5.3.8-3yocto版本:2.6.1(thud)
使用crops/yocto编译出eSDK后想要安装到ManjaroKDE
当报以上错误时需要执行 sudo pacman -S python2 安装 python2 。
当报以上错误时使用使用 ls -al /your/path/to/build/tmp/hosttools 查看缺少哪些包(缺少的包底色不一样)如 下图中的rpcgen:
我这里缺少 chrpath pod2man rpcgen ,对应的包分别是 chrpath perl rpcsvc-proto 。
安装完 perl 后需要使用 sudo ln -S /usr/bin/core_perl/pod2man /usr/bin/pod2man 进行软链接,使用 where pod2man 可知 pod2man 路径是否符合 hosttools 内的路径。
另外 sudo 比较特别,需然底色不一样但路径是对的,系统自带不用管。
之后正常安装eSDK即可。
获取安装在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
以上是关于ManjaroKDE安装Yocto eSDK的主要内容,如果未能解决你的问题,请参考以下文章
从 Yocto SDK Build 安装时,QtCreator 认为 Qt5 QMake 安装无效
获取安装在Yocto bin_package中的库的依赖列表。
YOCTO-问题:nativesdk-qtbase:已安装文件/目录,但未以任何软件包提供]] << [