首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用compiler_suite替换toolchains+platform:如何-配置编译器?

用compiler_suite替换toolchains+platform:如何-配置编译器?
EN

Stack Overflow用户
提问于 2022-11-04 21:19:32
回答 1查看 20关注 0票数 2

我已经设置了我的bazel交叉工作台,以便我可以具体地选择我想要的编译器: gcc9,gcc10,.,clang12,clang13.这个很好用。

代码语言:javascript
复制
bazel build --compiler=clang13 //:target

我绞尽脑汁,想知道我是如何用平台实现这一目标的!它似乎想要选择您为给定平台指定的任何编译器,如果您想要更改它,您必须编辑文件!

特别是,如果我希望依赖项使用我的编译器,那么我所做的任何事情都需要与absl和grpc兼容。

是否存在通过--config、-定义或其他标志来强制工具链选择?

代码语言:javascript
复制
# In Workspace
register_toolchains("//toolchains:gcc12",
                    "//toolchains:clang13", 
                    "//toolchains:clang14",
                    ...)                 
代码语言:javascript
复制
# But how do I tell it that I want clang13, or clang14???
bazel build --platform=linux_x86 //:target
EN

回答 1

Stack Overflow用户

发布于 2022-11-19 09:55:20

这里有两个可以帮助你的想法:

  1. 不要使用register_toolchains()bazel知道所有的工具链,而是使用工具链 (可能基于通过.bazelrc--config )。这使bazel只知道一个可用于解析的编译器工具链。当然,使用这种方法,您不能对不同的目标使用不同的编译器工具链。
  2. 利用constraint_setting()定义的这里https://bazel.build/configure/windows#clang引用了如何做到这一点:
代码语言:javascript
复制
platform(
    name = "x64_windows-clang-cl",
    constraint_values = [
        "@platforms//cpu:x86_64",
        "@platforms//os:windows",
        "@bazel_tools//tools/cpp:clang-cl",
    ],
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74323072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档