玩转 Bazel C++ 教程; build 没有 create/use 共享库?

Playing with Bazel C++ tutorials; build does not create/use shared libraries?

今天第一次看 Bazel。

在构建 cpp tutorial 时,我可以看到它是如何构建简单的可执行文件和存档库的,但它看起来不像示例创建或使用共享库。

有谁知道用于演示此过程的简单示例 BUILD 文件?谢谢

共享库是 cc_binary:

cc_binary(
    name = "libfoo.so",
    srcs = ["foo.cc"],
    linkshared = 1,     ## important
)

(在重要的情况下,您可能还应该添加 linkstatic = 1 以获得独立的 DSO,该 DSO 本身对其源依赖项没有加载时依赖项。)

要执行动态链接,您必须先导入共享库。您应该指定库 headers、库二进制文件和接口库(仅 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"],
)