如何避免在 Bazel 中构建 C++ 静态库
How to avoid building C++ static libraries in Bazel
我在命令行中尝试了 --dynamic_mode=fully
的各种组合,在 cc_library
和 cc_binary
规则中尝试了 linkstatic = 0
的各种组合,但未能设法避免构建静态库 (.a
) 在构建 Bazel 项目时。虽然二进制文件确实是动态链接的,但 .a
文件仍然会构建,占用大量时间和 space(在共享缓存上)。
我是不是漏掉了什么?
回答我自己的问题:问题似乎出在通配符 build //...
上。它触发链接 both 每个 cc_library
规则的静态和动态库。如果您将 tags = ["manual"]
添加到库中,并使用 --dynamic_mode=fully
进行构建,静态 .a
库将不再自动构建,但 .so
仍将根据 cc_binary
目标。
我在命令行中尝试了 --dynamic_mode=fully
的各种组合,在 cc_library
和 cc_binary
规则中尝试了 linkstatic = 0
的各种组合,但未能设法避免构建静态库 (.a
) 在构建 Bazel 项目时。虽然二进制文件确实是动态链接的,但 .a
文件仍然会构建,占用大量时间和 space(在共享缓存上)。
我是不是漏掉了什么?
回答我自己的问题:问题似乎出在通配符 build //...
上。它触发链接 both 每个 cc_library
规则的静态和动态库。如果您将 tags = ["manual"]
添加到库中,并使用 --dynamic_mode=fully
进行构建,静态 .a
库将不再自动构建,但 .so
仍将根据 cc_binary
目标。