gpt4 book ai didi

c++ - 在本地 boost 安装中使用 Bazel

转载 作者:行者123 更新时间:2023-11-30 03:15:04 59 4
gpt4 key购买 nike

我只想知道是否有人尝试过这样做?

我目前正在使用 nelhage/rules_boost 作为我的 boost 依赖项(只是为了同时编译一些东西),但由于我正在使用的代码仅 100% 兼容 1.55,我不能长时间使用他的规则。

我也可以尝试调整他的代码以与 boost 1.55 一起工作,但我认为如果我只是让 Bazel 依赖于 boost 的安装会让事情变得容易得多,因为我也在使用容器。

最佳答案

我通常将 boost 用作 Bazel 的预构建外部依赖项。我只是在我的 WORKSPACE 文件中引用本地安装,然后为其创建一个 BUILD 文件,例如:

# WORKSPACE file
new_local_repository(
name = "boost",
path = "/your/path/to/boost",
build_file = "third_party/boost.BUILD",
)

BUILD 文件中,您可以选择将 header 和库拆分为单独的规则或将它们组合在一起。在下面的示例中,我将所有 header 作为规则保留,并将库分成不同的规则:

# third_party/boost.BUILD
cc_library(
name = "boost-headers",
hdrs = glob(["include/boost/**"]),
visibility = ["//visibility:public"],
includes = ['include'],
)

cc_library(
name = "boost-atomic",
srcs = ["lib/libboost_atomic.a"],
visibility = ["//visibility:public"],
)

cc_library(
name = "boost-chrono",
srcs = ["lib/libboost_chrono.a"],
visibility = ["//visibility:public"],
)

...

然后在我的二进制文件/库中获取依赖项:

cc_binary(
name = 'main',
srcs = ['main.cc'],
deps = [
'@boost//:boost-headers',
'@boost//:boost-regex',
]
)

如果您已将 boost 安装到 /usr/include//usr/lib 中,这应该也可以工作,但我还没有尝试说实话。

希望这对您有所帮助。

关于c++ - 在本地 boost 安装中使用 Bazel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57337867/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com