2017-06-16 95 views
0

为巴泽尔的cc_binary rule文档说:bazel:你如何“请求”cc_binary构建二进制文件的剥离版本?

隐产出目标

<name>.stripped(仅当明确要求建):二进制的剥离版本。在二进制文件上运行strip -g以删除调试符号。使用--stripopt=-foo可以在命令行上提供附加条带选项。此输出仅在明确请求时才构建。

我该如何“明确请求”这个剥离的二进制得到建立?有什么我需要在我的BUILD文件中的cc_binary声明中加入?我无法从文档(或Bazel源文件)中找出它。

回答

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) > [email protected]" 
) 
相关问题