compilation - Bazel 中的项目范围的 copts 和 linkopts

标签 compilation 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 文件

关于compilation - Bazel 中的项目范围的 copts 和 linkopts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36943593/

相关文章:

bazel - 如何在 Bazel 中进行配置和变体处理?

build - 改进 Rust 二进制构建时间

c++ - g++ (freebsd) 错误 : expected primary-expression before '{' token

tensorflow - 在 Bazel 项目中构建 CMake 库

bazel - 如何在 bazel 中保留 proto 文件的生成源代码?

testing - 是否有选项告诉 bazel 测试不要缓存输出

java - 无限循环中断方法签名而没有编译错误

c - 如何用LLVM或其他工具标记基本 block 的边界?

compilation - 编译 'hello, world' GNU smalltalk

haskell - 将 Haskell 与 Bazel 结合使用