You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bazel搭配GHS ARM编译器归档命令执行失败问题排查

GHS编译器归档命令异常问题排查

背景

在嵌入式项目中使用GHS编译器生成.elf和.hex文件,已通过代码配置CcToolchainConfigInfo,该配置在其他嵌入式项目中运行正常,但某项目执行归档命令时出现异常。

项目配置差异

异常项目与正常项目的BUILD配置唯一差异:异常项目的cc_library的srcs和hdrs使用了Tree artifact(目录类型的depset)。

观察结果

  • 编译成功完成,所有.o目标文件均已生成且可用;
  • 归档器生成的.params文件无目标文件路径:移除自定义GHS归档器配置后,.params会正常列出.o路径,但附带GHS不支持的默认flags;
  • 对比了有无归档器配置时的libproject_lib_p4.a-2.params文件内容。

问题

请问问题的根源是什么?是否由Tree artifact的使用导致?


解答

大概率是Tree artifact的使用与自定义GHS归档器配置的兼容性问题导致的。

原因在于:当cc_library的srcs/hdrs采用Tree artifact时,Bazel处理依赖传递时的目标文件路径解析逻辑会发生变化。默认的归档器逻辑能正确遍历Tree artifact下的.o文件,但你的自定义GHS归档器配置没有适配这种场景——缺少对Tree artifact类型依赖的路径提取处理,导致生成.params文件时无法正确收集到.o文件路径。

验证与修复方向

  • 临时将异常项目的srcs/hdrs替换为普通文件而非Tree artifact,重新执行归档命令,确认.params是否能正常生成目标文件路径;
  • 检查自定义GHS归档器的配置代码,补充处理Tree artifact的逻辑:显式遍历Tree artifact中的文件并提取路径,将其添加到归档参数列表中。

内容的提问来源于stack exchange,提问作者ajayg2808

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:49:56