Примерно так должно работать для того, что вы пытаетесь сделать:
cc_binary(
name = "libmylib.so",
srcs = ["mylib.cpp", "archive.a"],
linkshared = True,
)
cc_library(
name = "mylib",
srcs = ["libmylib.so"],
hdrs = ["mylib.hpp"],
)
cc_binary(
name = "mybin",
srcs = ["mybin.cpp"],
deps = [":mylib"],
)
Вы можете создать общую библиотеку (которая выполняется как cc_binary(linkshared = True)
; этот бит может показаться не совсем интуитивным) из ваш источник и архив библиотеки.
Вы можете создать cc_library
для использования в качестве зависимости от других ваших целей ... и использовать его для построения cc_binary
цели.
В Теория, если бы это была только одна вещь времени / места, вы, вероятно, могли бы сократить ее следующим образом (но это скорее пример минимальной длины):
cc_binary(
name = "libmylib.so",
srcs = ["mylib.cpp", "archive.a"],
linkshared = True,
)
cc_binary(
name = "mybin",
srcs = ["mybin.cpp", "mylib.hpp", ":libmylib.so"],
)