使用多个编译器进行Bazel编译

使用多个编译器进行Bazel编译,bazel,Bazel,我有一个非常简单的测试用例,具有以下结构: project | |-- app | | | |-- BUILD | |-- *.cpp *.h | |-- lib | | | |-- BUILD | |-- *.cpp *.h | |-- WORKSPACE app包含一条cc_binary规则,而lib--仅cc_库,它被编译到共享库中并链接到可执行文件 我遇到的问题是,我需要使用gc

我有一个非常简单的测试用例,具有以下结构:

project
   |
   |-- app
   |    |
   |    |-- BUILD
   |    |-- *.cpp *.h
   |
   |-- lib
   |    |
   |    |-- BUILD
   |    |-- *.cpp *.h
   |
   |-- WORKSPACE
app
包含一条
cc_binary
规则,而
lib
--仅
cc_库
,它被编译到共享库中并链接到可执行文件

我遇到的问题是,我需要使用
gcc-9
编译
lib
,而
app
——使用
gcc-10

我试图根据文档中的文章创建自定义工具链。然而,据我所知,它适用于全局代码,而不是特定目标

我还发现可以在建筑目标规则中指定
工具链
,例如:

cc_binary(
    name = "main",
    srcs = ["main.cpp"],
    deps = [
        "//lib:cpplib"
    ],
    toolchains = [
        "//toolchain:gcc10_toolchain"
    ]
)
但是,此用法不正确,并出现以下错误:
在cc_二进制规则//app:main的toolschains属性中:“//toolschain:gcc10_toolschain”没有强制提供程序:“TemplateVariableInfo”