Bazel的cc_binary
rule文档说:
隐含输出目标
<name>.stripped
(仅在明确请求时构建):二进制文件的剥离版本。在二进制文件上运行strip -g
以删除调试符号。可以使用--stripopt=-foo
在命令行上提供其他条带选项。仅在明确请求时才构建此输出。
我如何“明确请求”这个剥离的二进制文件被构建?我需要在cc_binary
文件的BUILD
声明中添加一些内容吗?我无法从文档(或Bazel来源)中找到它。
答案 0 :(得分:1)
好吧,我想我是怎么想的。
如果我的BUILD
文件包含此内容:
cc_binary(
name = "mytool",
srcs = ["mytool.c"]
)
...然后从命令行我可以用这个构建剥离的二进制文件:
bazel build //:mytool.stripped
或更常见的情况,如果我有另一个需要剥离的二进制作为其输入之一的BUILD规则,我可以通过相同的标签:mytool.stripped
来引用它。这是一个奇怪的人为例子:
genrule(
name = "mygenrule",
outs = ["genrule.out"],
srcs = [":tool1.stripped"],
# run tool1.stripped, sends its output to genrule.out:
cmd = "$(SRCS) > $@"
)