0

我无法将多个库归档到一个库中,例如:

cc_library(
name = "lib1",
srcs = ["src1.c"]
)

cc_library(
name = "lib2",
srcs = ["src2.c"]
)

cc_library(
name = "release-lib",
srcs = [":lib1",":lib2"]

当我运行 bazel build //release-lib 时,它将通过 INFO: Found 1 target... target //release-lib up-to-date

但目标永远不会内置于 bazel-out

如果我曾经使用 release-lib 作为 cc_binary 规则的 dep,当然会将 lib1、lib2 添加到链接命令中,但是我的最终目标是拥有多个库的完整存档有没有办法强制让 bazel 创建和构建这个目标 !?

4

1 回答 1

0

根据经验,cc_library仅适用于包含到执行完全传递链接的顶级目标中,例如cc_binary. 构建传递静态库目前不在内置 Bazel C++ 规则的范围内。但是,这里有一个扩展规则:https ://gist.github.com/oquenchil/3f88a39876af2061f8aad6cdc9d7c045也可以按照https://github.com/bazelbuild/bazel/issues/1920获取完整信息肮脏的历史。

于 2021-10-12T19:05:56.733 回答