我已经设置了我的bazel交叉工作台,以便我可以具体地选择我想要的编译器: gcc9,gcc10,.,clang12,clang13.这个很好用。
bazel build --compiler=clang13 //:target我绞尽脑汁,想知道我是如何用平台实现这一目标的!它似乎想要选择您为给定平台指定的任何编译器,如果您想要更改它,您必须编辑文件!
特别是,如果我希望依赖项使用我的编译器,那么我所做的任何事情都需要与absl和grpc兼容。
是否存在通过--config、-定义或其他标志来强制工具链选择?
# In Workspace
register_toolchains("//toolchains:gcc12",
"//toolchains:clang13",
"//toolchains:clang14",
...) # But how do I tell it that I want clang13, or clang14???
bazel build --platform=linux_x86 //:target发布于 2022-11-19 09:55:20
这里有两个可以帮助你的想法:
register_toolchains()让bazel知道所有的工具链,而是使用工具链 (可能基于通过.bazelrc的--config )。这使bazel只知道一个可用于解析的编译器工具链。当然,使用这种方法,您不能对不同的目标使用不同的编译器工具链。constraint_setting()定义的这里。https://bazel.build/configure/windows#clang引用了如何做到这一点:platform(
name = "x64_windows-clang-cl",
constraint_values = [
"@platforms//cpu:x86_64",
"@platforms//os:windows",
"@bazel_tools//tools/cpp:clang-cl",
],
)https://stackoverflow.com/questions/74323072
复制相似问题