Bazel 非c代码的交叉编译

Bazel 非c代码的交叉编译,bazel,Bazel,在linux上交叉编译一个几乎为空的工作区(没有依赖项,一个构建文件有一个空文件组)会导致一个错误 bazel build //... --cpu=x64_windows_msvc ERROR: cc_toolchain_suite '@local_config_cc//:toolchain' does not contain a toolchain for CPU 'x64_windows' and compiler 'cl' 这意味着如果没有有效的c交叉工具,我们无法交叉编译非c语言,这似

在linux上交叉编译一个几乎为空的工作区(没有依赖项,一个构建文件有一个空文件组)会导致一个错误

bazel build //... --cpu=x64_windows_msvc
ERROR: cc_toolchain_suite '@local_config_cc//:toolchain' does not contain a toolchain for CPU 'x64_windows' and compiler 'cl'
这意味着如果没有有效的c交叉工具,我们无法交叉编译非c语言,这似乎是一个相当基本的限制。有没有办法解决这个问题?

有两个问题:

  • C工具链是C配置的一部分,如果没有有效的C配置,bazel目前无法工作
  • Bazel可以在构建过程中使用工具,其中许多工具都是C语言的,因此即使您的代码不需要C工具链,但构建代码的一些工具也需要
  • 1。这是个问题,我们正在解决。但是bazel努力检测你的工具链,所以在大多数情况下不需要额外的工作。我想知道为什么它不适合你。。。调查。

    有两个问题:

  • C工具链是C配置的一部分,如果没有有效的C配置,bazel目前无法工作
  • Bazel可以在构建过程中使用工具,其中许多工具都是C语言的,因此即使您的代码不需要C工具链,但构建代码的一些工具也需要

  • 1。这是个问题,我们正在解决。但是bazel努力检测你的工具链,所以在大多数情况下不需要额外的工作。我想知道为什么它不适合你。。。调查。

    因为Bazel 0.21 Bazel无条件地不需要C工具链。它仅在构建需要时加载C工具链(例如,构建cc_二进制文件,或使用C++编写的工具)。

    因为Bazel 0.21 Bazel无条件地需要C工具链。它仅在构建需要时加载C工具链(例如,构建cc_二进制文件,或使用C++编写的工具)。

    Bazel可以检测工作主机工具链,构建构建期间使用的工具就足够了,但不足以进行交叉编译。存储库是完全空的,唯一的文件是:WORKSPACE``WORKSPACE(name=“test”)``BUILD.bazel``filegroup(name=“test”)```所以它根本不应该尝试构建任何东西。bazel可以检测到工作主机工具链,构建过程中使用的工具就足够了,仅仅做交叉编译是不够的。存储库是完全空的,唯一的文件是:WORKSPACE``WORKSPACE(name=“test”)``BUILD.bazel``filegroup(name=“test”)``所以它根本不应该尝试构建任何东西。