bazel alwayslink = true是什么意思?

时间:2018-02-06 23:16:45

标签: c++ bazel

我是bazel的新手。以下是bazel doc中的解释:

https://docs.bazel.build/versions/master/be/c-cpp.html#cc_library.alwayslink

  

alwayslink

     

布尔;可选的;不可配置;默认值为0

     

如果为1,任何依赖于(直接或间接)此C ++的二进制文件   库将链接到列出的文件的所有目标文件中   srcs,即使某些不包含二进制引用的符号。这个   如果您的代码没有被二进制代码显式调用,则非常有用,   例如,如果您的代码注册接收一些提供的回调   服务。

我不太明白最后一句话:e.g., if your code registers to receive some callback provided by some service.任何人都可以举例说明吗?谢谢!

1 个答案:

答案 0 :(得分:1)

  例如,如果你的代码注册接收某些服务提供的一些回调。

AIUI,cc_binary构建共享库/ DLL时就是这种情况。您需要链接器保留所有符号,即使未使用,因为在运行时加载.so / .dll的另一个二进制文件可能需要这些符号。