gpt4 book ai didi

c++ - 输出 'external/name/x/lib/lib.so' 不是使用 bazel make 创建的

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:14 26 4
gpt4 key购买 nike

我试图按照 Building Makefile using bazel 提供的示例进行操作发布以在特使中构建外部包。在 WORKSPACE 文件中,我添加了以下内容:

new_git_repository(
name = "name",
remote = "remote.git",
build_file = "//foo/bazel/external:x.BUILD",
)

foo/bazel/external/x.BUILD 有以下内容:

load("@rules_foreign_cc//tools/build_defs:make.bzl", "make")

filegroup(
name = "m_srcs",
srcs = glob(["code/**"]),
)

make(
name = "foo_bar",
make_commands = ["make lib"],
lib_source = ":m_srcs",
shared_libraries = ["lib.so"],
)

我将 foo/bazel/BUILD 中的可见性设置为 package(default_visibility = ["//visibility:public"])

在执行 bazel build -s @name//:foo_bar 时,我得到了 external/name/x/lib/lib.so 未创建的错误。

我检查了 bazel-bin/external/name/x/logs/GNUMake.log 并成功完成。我看到 BUILD_TMPDIR 目录已经创建了 lib.so。我认为它应该被复制到 EXT_BUILD_DEPS/lib,但我不确定为什么它没有被复制。非常感谢调试错误的任何提示。

最佳答案

编辑 make 命令以手动将 lib 复制到预期文件夹 - make_commands = ["make libs; cp lib.so $INSTALLDIR/lib/lib.so"]

关于c++ - 输出 'external/name/x/lib/lib.so' 不是使用 bazel make 创建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58211438/

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