问题描述
构建工具版本
# bingo -v
>> whoami
root
当前skill自动更新状态已关闭,如需开启请执行`bingo config skill.sync=true`
bingo 版本为: 0.8.7
问题现象
openUBMC 26.06 版本(含最新的main分支,commit 64f9850bbe0333ee70da29d12e7b7fef32a3ee24)构建 openUBMC_1712 报错。main 分支节点以及报错节选如下:
openUBMC 1712 构建报错.txt (144.9 KB)
初步分析
经排查,确认组件配置 libmcpp 在 openUBMC_1712 下的 manifest.yml 中不存在。具体如下图:

答案内容由AI生成,仅供参考:
四、结论
根据当前知识库,没有直接针对“libmcpp 在 openUBMC_1712 的 manifest.yml 中不存在”这一具体错误的修复命令。
最可行的做法是:
- 查看完整构建日志(例如
manifest/temp/log/task.log)
- 定位是哪一个任务或组件在构建时要求使用
libmcpp
- 再决定是在
manifest.yml 中补充该组件配置,还是调整其他组件的依赖声明
如果问题依然无法解决,建议携带完整错误日志,在 openUBMC 社区论坛中发起讨论,以便获得更精确的定位和解决方案。
点击此处查看详细分析解答
根据知识库中现有的信息,针对您遇到的 openUBMC 26.06 构建 openUBMC_1712 报错,且初步定位为 libmcpp 组件在 openUBMC_1712 的 manifest.yml 中不存在 的问题,可以做如下综合分析:
一、相关背景信息
1. manifest.yml 的作用
根据知识库中的信息,manifest.yml 是 OpenUBMC 构建系统的中央配置文件,用于定义产品特定的设置、依赖关系和构建参数。它通常位于产品目录下:
- 例如
build/product/BMC/openUBMC 或 build/product/BMC/openUBMC_1712
- 在 Hi1712 芯片构建指导中,也明确指出需要查看
manifest/build/product/BMC/openUBMC_1712 下的 manifest.yml 来确认产品配置。
同时,Manifest 系统整体负责:
- 定义组件版本、依赖关系
- 管理多产品、多子系统的构建配置
- 维护版本一致性与构建完整性
- 是
bingo build 等构建命令的核心输入
2. libmcpp 组件简介
知识库中关于 libmcpp 的描述是:
- 它是专为 openUBMC 项目设计的现代 C++ 开发框架
- 提供反射系统、异常处理、日志系统、D-Bus 通信、共享内存数据库等能力
- 主要面向嵌入式系统(尤其是 BMC 固件)和服务器应用程序开发
- 是 openUBMC 组件体系中的一个组成部分,通常通过 Conan 包管理器集成
二、问题分析
- 构建系统在解析产品配置时,依据
manifest.yml 来确定当前产品需要哪些组件及其版本。
- 如果构建过程中某个环节需要
libmcpp,但 openUBMC_1712 的 manifest.yml 中没有声明该组件,就可能导致依赖解析失败或构建任务报错。
- 知识库中也提到了类似的构建失败原因,例如:
- 版本冲突:不同组件要求不兼容的共享依赖版本
- 组件版本与 manifest 不匹配
- manifest 配置不完整或缺失关键项
结合您的初步分析——libmcpp 在 openUBMC_1712 下的 manifest.yml 中不存在——可以推断,该问题大概率出在 产品级 manifest 配置与构建依赖之间的不一致上。
三、可以尝试的排查方向
根据知识库中社区用户的处理经验,以下方向可供参考:
-
检查 Hi1712 产品配置文件
- 查看
manifest/build/product/BMC/openUBMC_1712/manifest.yml 的完整内容
- 确认是否确实没有
libmcpp 相关配置
- 比对其他可正常构建的产品(如 openUBMC)的
manifest.yml,看是否存在差异
-
核对 manifest 分支/版本对齐
- 知识库中曾强调:特定软件版本必须与 manifest 及其配置正确对齐,才能成功构建
- 建议确认当前 manifest 分支或版本是否与 openUBMC 26.06 配套
-
排查其他组件对 libmcpp 的引用
- 如果
libmcpp 不是 1712 平台所需组件,但其他组件或构建脚本仍引用了它,则可能是依赖关系配置错误
- 检查目标依赖、Conan 配置等是否存在版本或名称不匹配
-
参考社区类似问题的处理方式
- 有社区用户在构建失败时,通过修改 manifest 中的组件选项(如注释掉某些帮助组件)解决了问题
- 也有技术用户建议回滚 manifest 中的组件版本来排除故障
- 这些方法可以结合您的实际错误日志尝试
四、结论
根据当前知识库,没有直接针对“libmcpp 在 openUBMC_1712 的 manifest.yml 中不存在”这一具体错误的修复命令。
最可行的做法是:
- 查看完整构建日志(例如
manifest/temp/log/task.log)
- 定位是哪一个任务或组件在构建时要求使用
libmcpp
- 再决定是在
manifest.yml 中补充该组件配置,还是调整其他组件的依赖声明
如果问题依然无法解决,建议携带完整错误日志,在 openUBMC 社区论坛中发起讨论,以便获得更精确的定位和解决方案。
yaoshun1
(yaoshun)
3
参考openUBMC产品下的manifest.yml,给openUBMC_1712产品下的manifest.yml配置libmcpp依赖
@yaoshun1 openUBMC
- 26.06 版本发布的时候没有验证过 openUBMC_1712 的固件会构建失败(必现问题)?
- 上述单点问题可以先配置 libmcpp 解决,但是是否还有哪些组件或者其他配置会导致构建失败?
能否提供一个全景的解决方案,而不是说配置一个单点的 libmcpp 组件。
yaoshun1
(yaoshun)
5
目前1712还未纳入社区流水线每日构建流程,所以可能存在此问题,可在CICD SIG例会报相关议题提出此问题