如何通过brew为Bazel安装linux crosstool编译器?

时间:2017-11-05 10:03:05

标签: cross-compiling bazel

在我的Mac上,有installed Bazel via brew,如何安装linux crosstools来构建将在linux容器上运行的库?

背景:

我正在尝试在我的Mac上本地诊断bazel / rules_docker测试失败,但我发现干净的登记失败(https://github.com/bazelbuild/rules_docker/issues/217)。我的预感是我需要使用linux crosstool显式构建一些组件,但是bazel说

Valid toolchains are: [
  --cpu='darwin_x86_64' --compiler='compiler' --glibc='macosx',
  --cpu='ios_x86_64' --compiler='compiler' --glibc='ios',
  --cpu='watchos_i386' --compiler='compiler' --glibc='watchos',
  --cpu='tvos_x86_64' --compiler='compiler' --glibc='tvos',
  --cpu='ios_i386' --compiler='compiler' --glibc='ios',
  --cpu='ios_armv7' --compiler='compiler' --glibc='ios',
  --cpu='watchos_armv7k' --compiler='compiler' --glibc='watchos',
  --cpu='tvos_arm64' --compiler='compiler' --glibc='tvos',
  --cpu='ios_arm64' --compiler='compiler' --glibc='ios',
  --cpu='armeabi-v7a' --compiler='compiler' --glibc='armeabi-v7a',
].

有没有办法安装和/或引用其他工具链?

1 个答案:

答案 0 :(得分:0)

Bazel使用Skylark存储库here自动检测本地配置。它仅适用于检测用于定位本地环境的工具链。如果你需要从mac定位linux,你需要提供自定义工具链(CROSSTOOL和相关的东西)。一种选择是在linux机器上运行bazel,并从output_base检索生成的工具链,将带有CROSSTOOL的文件夹复制到mac机器上,并使用--crosstool_top来使用该CROSSTOOL而不是自动生成的CROSSTOOL。它有意义吗?