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

Bazel无法识别自定义添加的armv6k CPU约束值求助

问题:添加armv6k CPU约束值时的Bazel平台引用错误

背景

需在bazel-toolchain仓库中添加armv6k CPU约束值,用于创建树莓派Zero的交叉编译平台,实现同一项目同时支持x86-64本地编译与树莓派交叉编译。

操作代码

在仓库分支的platforms/BUILD.bazel中定义约束值:

constraint_value(
    name = "armv6k",
    constraint_setting = "@platforms//cpu:cpu",
)

随后在同一文件中定义平台:

platform(
    name = "linux-armv6k",
    constraint_values = [
        "@platforms//os:linux",
        "@platforms//cpu:armv6k",
    ],
)

错误信息

执行构建时触发如下错误:

ERROR: /home/ubuntu/.cache/bazel/_bazel_1000/a08c2e4811c846650b733c6fc815a920/external/com_grail_bazel_toolchain/platforms/BUILD.bazel:38:9: no such target '@platforms//cpu:armv6k': target 'armv6k' not declared in package 'cpu' defined by /home/ubuntu/.cache/bazel/_bazel_1000/a08c2e4811c846650b733c6fc815a920/external/platforms/cpu/BUILD (did you mean 'armv7k'? Tip: use `query "@platforms//cpu:*"` to see all the targets in that package) and referenced by '@com_grail_bazel_toolchain//platforms:linux-armv6k'

执行bazel query @platforms//cpu:*后,未查询到armv6k约束值。

环境信息

  • Bazel版本:6.2.1
  • 构建环境:使用2023年7月11日的gcr.io/bazel-public/bazel:latest Linux镜像
  • 宿主机系统:Windows

问题原因与修正方法

错误根源是约束值的引用路径错误:armv6k约束值定义在@com_grail_bazel_toolchain//platforms包中,而非官方@platforms//cpu包。定义平台时需使用本地包的引用路径,修正后的代码如下:

platform(
    name = "linux-armv6k",
    constraint_values = [
        "@platforms//os:linux",
        ":armv6k",  # 也可使用完整路径@com_grail_bazel_toolchain//platforms:armv6k
    ],
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:05:26