如何避免在 Bazel 中构建 C++ 静态库

How to avoid building C++ static libraries in Bazel

我在命令行中尝试了 --dynamic_mode=fully 的各种组合,在 cc_librarycc_binary 规则中尝试了 linkstatic = 0 的各种组合,但未能设法避免构建静态库 (.a) 在构建 Bazel 项目时。虽然二进制文件确实是动态链接的,但 .a 文件仍然会构建,占用大量时间和 space(在共享缓存上)。

我是不是漏掉了什么?

回答我自己的问题:问题似乎出在通配符 build //... 上。它触发链接 both 每个 cc_library 规则的静态和动态库。如果您将 tags = ["manual"] 添加到库中,并使用 --dynamic_mode=fully 进行构建,静态 .a 库将不再自动构建,但 .so 仍将根据 cc_binary 目标。