今天第一次看Bazel。
在构建cpp tutorial时,我可以看到它是如何构建简单的可执行文件和归档库的,但是它看起来并不像示例创建或使用共享库。
有人知道简单的示例BUILD文件来演示此过程吗?谢谢。
答案 0 :(得分:2)
共享库是cc_binary
:
cc_binary(
name = "libfoo.so",
srcs = ["foo.cc"],
linkshared = 1, ## important
)
(在非平凡的情况下,您可能还应该添加linkstatic = 1
以获得一个自包含的DSO,该DSO本身对其源依赖项不具有加载时间依赖项。)
答案 1 :(得分:0)
为了执行动态链接,必须首先导入共享库。您应该指定库标头,库二进制文件和接口库(仅Windows必需,在此示例中不存在):
# Build the shared library
cc_binary(
name = "libfoo.so",
srcs = ["foo.cc"],
linkshared = 1, ## important
)
# Import the shared library
cc_import(
name = "imported_libfoo",
hdrs = ["foo.h"],
shared_library = "libfoo.so",
)
# Link to the shared library
cc_binary(
name = "bar",
deps = [":imported_libfoo"],
)