/ / Was bedeutet bazel alwayslink = true? - c ++, bazel

Was bedeutet Bazel immer = wahr? - C ++, Bazel

Ich bin neu bei Bazel.

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

immerlink

Boolean; wahlweise; nicht konfigurierbar; Der Standardwert ist 0

Wenn 1, eine beliebige Binärdatei, die abhängt (direkt oderindirekt) auf diesem C ++ Die Bibliothek wird in allen Objektdateien der in aufgelisteten Dateien verlinkt srcs, auch wenn einige keine von der Binärdatei referenzierten Symbole enthalten. Diese ist nützlich, wenn Ihr Code nicht explizit durch Code in der Binärdatei aufgerufen wird. B. wenn sich Ihr Code registriert, um einen von einigen bereitgestellten Rückruf zu erhalten Bedienung.

Ich verstehe den letzten Satz nicht ganz: e.g., if your code registers to receive some callback provided by some service. Kann jemand ein Beispiel geben? Vielen Dank!

Antworten:

1 für die Antwort № 1

B. wenn sich Ihr Code registriert, um einen von einem Dienst bereitgestellten Rückruf zu erhalten.

AIUI, das ist der Fall, wenn die cc_binary erstellt eine gemeinsam genutzte Bibliothek / eine DLL. Sie benötigen den Linker, um alle Symbole beizubehalten, auch wenn sie nicht verwendet werden, da eine andere Binärdatei, die die .so / .dll zur Laufzeit lädt, diese Symbole möglicherweise benötigt.