Windows 10 上的 pkg_rules 问题

问题描述 投票:0回答:2

我想用

rules_pkg

我有以下设置:Windows 10 x64(版本2004,Bazel 3.7.0,Visual Studio 16 2019,MSYS2 x86_64)

我的最小设置如下所示:

WORKSPACE.bazel

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

# rules_pkg
http_archive(
    name = "rules_pkg",
    sha256 = "6b5969a7acd7b60c02f816773b06fcf32fbe8ba0c7919ccdc2df4f8fb923804a",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.3.0/rules_pkg-0.3.0.tar.gz",
        "https://github.com/bazelbuild/rules_pkg/releases/download/0.3.0/rules_pkg-0.3.0.tar.gz",
    ],
)

构建.bazel

load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")

cc_binary(
    name = "HelloWorld",
    srcs = ["main.cpp"],
)

pkg_tar(
    name = "deploy_HelloWorld",
    srcs = [
        ":HelloWorld",
    ],
    extension = "tar.gz",
)

main.cpp

#include <iostream>

int main() {
    std::cout << "Hello World!" << std::endl;
}

当我尝试构建即

bazel build //...
时,我得到:

PS G:\dev\BazelDemos\HelloWorld> bazel build //...
INFO: Analyzed 2 targets (20 packages loaded, 143 targets configured).
INFO: Found 2 targets...
ERROR: G:/dev/bazeldemos/helloworld/BUILD.bazel:8:8: PackageTar deploy_HelloWorld.tar.gz failed (Exit 9009): build_tar.exe failed: error executing command bazel-out/host/bin/external/bazel_tools/tools/build_defs/pkg/build_tar.exe --flagfile bazel-out/x64_windows-fastbuild/bin/deploy_HelloWorld.args
INFO: Elapsed time: 0.642s, Critical Path: 0.29s
INFO: 8 processes: 7 internal, 1 local.
FAILED: Build did NOT complete successfully

我可以在具有相同/相似设置的另外两台 Windows 10 计算机上毫无问题地进行构建。有什么想法吗?

更多设置细节:

Path
包含
C:\msys64\usr\bin
BAZEL_SH
设置为
C:\msys64\usr\bin\bash.exe

bazel bazel-rules
2个回答
1
投票

Python3 没有安装在我的 Path 变量中。 Exit 9009 通常是指批处理脚本调用特定命令失败而触发的错误。


0
投票

这可能与您遇到的问题不完全相同,但我想我应该分享它,因为我在运行 pkg_tar 时也遇到了问题。

我正在运行 centos docker 容器,即使已经在容器环境中安装了 python3,但仍然遇到问题。事实证明,我需要安装包

which
,rules_python 在内部使用它来定位 python3 或 python

的确切路径
© www.soinside.com 2019 - 2024. All rights reserved.