Ja som nový v bazeli. Tu je vysvetlenie v bazéne doc:
https://docs.bazel.build/versions/master/be/c-cpp.html#cc_library.alwayslink
alwayslink
boolean; voliteľný; nonconfigurable; predvolená hodnota je 0
Ak 1, každý binár, ktorý závisí (priamo alebonepriamo) na tento C ++ knižnica bude odkazovať vo všetkých súboroch objektov pre súbory uvedené v zozname srcs, aj keď niektoré neobsahujú žiadne symboly, na ktoré odkazuje binárny kód. toto je užitočný, ak váš kód nie je explicitne volaný kódom v binárnom kóde, napríklad, ak sa váš kód zaregistruje, aby prijal nejaké spätné volanie, ktoré poskytli niektorí service.
Nerozumiem poslednej vete: e.g., if your code registers to receive some callback provided by some service.
Môže niekto dať a príklad? Vďaka!
odpovede:
1 pre odpoveď č. 1ak sa váš kód zaregistruje, aby prijal spätné volanie, ktoré poskytuje určitá služba.
AIUI, to je prípad, keď cc_binary
buduje zdieľanú knižnicu / knižnicu DLL. Na udržanie všetkých symbolov, aj keď nie sú použité, potrebujete linker, pretože iný binár, ktorý načítava .so / .dll za behu, môže tieto symboly potrebovať.