玩转 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"],
)
今天第一次看 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"],
)