Создание библиотек с зависимостями от Bazel и Hardcoding - PullRequest
0 голосов
/ 01 марта 2019

Можно ли жестко закодировать зависимости в библиотеки, созданные с помощью bazel.Причина в том, что если я создаю somelib, я могу использовать его в рабочей области, но как только я копирую lib куда-то еще, я теряю все зависимости (кэш bazel).Ведьма создает проблему, когда я хочу развернуть библиотеки в системе или установить.

some_folder
|
thirdparty
|_WORKSPACE
|_somelib
|    |_src
|         |_ a.c
|         |_ BUILD
|    |_include
|         |_a.h
|_include
   |_ b.h

1 Ответ

0 голосов
/ 05 марта 2019

Звучит так, будто вы хотите создать полностью статически связанную библиотеку.Это можно сделать в Bazel, построив библиотеку, используя cc_binary с атрибутом linkshared, установленным в True.В соответствии с документацией вы также должны назвать свою библиотеку libfoo.so или аналогичную.

В этом случае статическая библиотека обеспечивает поведение linkstatic *1010*.При True, который является значением по умолчанию, все зависимости, которые могут быть статически связаны в двоичном файле, будут.Обратите внимание, что linkstatic НЕ ведет себя одинаково на cc_library, см. Документацию .

Итак, в основном вы хотите что-то подобное в вашем файле BUILD

cc_binary(
    name = "libfoo.so",
    srcs = [...],
    hdrs = [...],
    linkshared = 1,
    #linkstatic = 1 # This is the default, you don't need to add this.
)

Удачи!

...