gpt4 book ai didi

Bazel 中基于编译器(gcc vs clang)的配置 "copts"

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:46 85 4
gpt4 key购买 nike

我有一个基于 Bazel 的 C 项目,我想用 gcc 编译它和 clang在 Linux 上。要在编译器之间切换,我在调用前加上 CC=<compiler 前缀,像这样:

CC=clang bazel build //my-package:my-target

这按预期工作,除了我还使用 copts 调用 Bazel 规则参数:

cc_binary(
name = "my-target",
srcs = [
"my-src.c",
],
copts = [
"-std=c89",
"-Wno-unused-label",
"-Wno-unused-variable",
"-Wno-unused-but-set-variable",
"-Wno-misleading-indentation",
],
)

这有效,但我从 clang 收到“未知警告选项”消息:

warning: unknown warning option '-Wno-unused-but-set-variable'; did you mean '-Wno-unused-const-variable'? [-Wunknown-warning-option]

warning: unknown warning option '-Wno-misleading-indentation'; did you mean '-Wno-binding-in-condition'? [-Wunknown-warning-option]

是否可以指定 copts用于特定 Bazel 调用的 C 编译器的参数条件

最佳答案

创建一个 .bazelrc 文件并使用 --config 选项。

我使用 Visual Studio 2019 和 GCC 9 来构建我的代码。

我的.bazelrc:

build:vs2019 --cxxopt=/std:c++17

build:gcc9 --cxxopt=-std=c++17

Visual Studio 2019

构建

bazel build --config=vs2019 //...

测试

bazel test --config=vs2019 //...

海湾合作委员会

构建

bazel build --config=gcc9 //...

测试

bazel test --config=gcc9 //...

例如 FlatlandRT 使用这种方法来支持不同的编译器 -> 请参阅 .bazelrc

关于Bazel 中基于编译器(gcc vs clang)的配置 "copts",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58683098/

85 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com