Yocto Rocko版本Bitbake报错无法继承multilib_script.bbclass如何解决?
Yocto Rocko版本
multilib_script.bbclass找不到报错解决方案 问题根因
该报错是由于构建环境未满足multilib_script类的依赖条件,或使用的层分支与Rocko版本不匹配导致,可按以下步骤排查解决:
步骤1:确认原生poky的meta层存在该类
Rocko版本的官方poky仓库的meta层默认自带multilib_script.bbclass,在poky根目录执行以下命令验证:find meta -name "multilib_script.bbclass"若搜索无结果,说明你的poky仓库分支错误或文件缺失,将poky仓库切换到
rocko分支并同步完整代码即可。步骤2:补全local.conf的multilib配置
multilib_script类依赖全局multilib配置才会被正常加载,需要在conf/local.conf中添加对应架构的multilib配置,示例配置如下(需根据你的目标硬件架构调整tune值):# 启用lib32 multilib支持 MULTILIBS = "multilib:lib32" # 32位环境的默认tune,ARM架构示例 DEFAULTTUNE_virtclass-multilib-lib32 = "armv7athf-neon" # x86架构示例可替换为:DEFAULTTUNE_virtclass-multilib-lib32 = "i686"步骤3:适配不兼容的recipe
如果你不需要multilib功能,可以修改对应recipe取消对multilib_script的继承,给对应recipe添加bbappend文件,写入如下配置:# 移除multilib_script继承 BBCLASSEXTEND_remove = "multilib_script" # 若recipe中直接写了inherit multilib_script,可替换为条件判断 inherit ${@bb.utils.contains('MULTILIBS', 'multilib:lib32', 'multilib_script', '', d)}步骤4:校验所有层的分支匹配性
确认你添加的所有第三方层(包括meta-openembedded系列层)都已经切换到rocko对应的分支,高版本分支的recipe会存在对Rocko版本不兼容的配置,引发类找不到的报错。
内容的提问来源于stack exchange,提问作者user45573
相关产品推荐
相关产品推荐

