gpt4 book ai didi

bazel - 为什么我在.bzl文件中使用 "local_repository",然后它告诉我名称 'local_repository'没有定义?

转载 作者:行者123 更新时间:2023-12-02 14:48:03 27 4
gpt4 key购买 nike

我想通过 bazel 构建 envoy,我在我的电脑中手动下载了一些包,然后我将 http_archive 更改为 local_repository,但它告诉我名称 'local_repository' 未定义。 local_repository 是否需要任何加载操作?

local_repository 可以在WORKSPACE 中使用,但不能在我的.bzl 文件中使用

WORKSPACE:
workspace(name = "envoy")
load("//bazel:api_repositories.bzl", "envoy_api_dependencies")
envoy_api_dependencies()
load("//bazel:repositories.bzl", "GO_VERSION", "envoy_dependencies")
load("//bazel:cc_configure.bzl", "cc_configure")
envoy_dependencies()
`repositories.bzl`:
local_repository(
name = "com_google_protobuf",
path = "/home/user/com_google_protobuf",
)

最佳答案

local_repository 是一个 workspace rule所以我认为它在 WORKSPACE 文件之外不可用。

如果你想从 .bzl 文件中调用 local_repository,你可以在其中定义一个函数,使用 native,然后从工作空间,例如:

# repositories.bzl
def deps():
native.local_repository(
name = "com_google_protobuf",
path = "/home/user/com_google_protobuf",
)
# WORKSPACE
load("//:repositories.bzl", "deps")

deps()

例如,我在 grpc 中看到过这种模式项目。

关于bazel - 为什么我在.bzl文件中使用 "local_repository",然后它告诉我名称 'local_repository'没有定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57694322/

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