Bazel 中的项目范围的 copts 和 linkopts

Project-wide copts and linkopts in Bazel

在我的 BUILD 文件中,我有几个库:

cc_library(
    name = "foo",
    srcs = [ "foo.cpp" ],
    hdrs = [ "foo.h" ],
    copts = [ "-Wall" ],
)
cc_library(
    name = "bar",
    srcs = [ "bar.cpp" ],
    hdrs = [ "bar.h" ],
    copts = [ "-Wall" ],
)

如您所见,两个库共享相同的 copts。同样,我有多个具有相同 linkopts 的二进制文件。我如何在我的 BUILD 中定义一次这些编译器标志,这样我就不需要将它分别添加到每个库和二进制文件中?

正确的方法是将你的 cc 标志配置到你的 CROSSTOOL 文件,它现在是自动生成的,所以你必须创建一个自定义的。

最简单的方法是使用 --copt 标志定义它们并将其放入 tools/bazel.rc

中的 bazelrc 文件