gpt4 book ai didi

Bazel 给出 "open_proc"错误 21 运行嵌入式命令

转载 作者:行者123 更新时间:2023-12-03 19:09:21 26 4
gpt4 key购买 nike

我正在为 Haxe 创建一个 Bazel 扩展,虽然我在构建东西方面取得了一些初步成功,但我遇到了障碍,我不确定正确的方法是什么。
在 Haxe 中,如果您在 build.hxml 文件中声明对 Haxelib 的依赖关系,则当您执行构建时,Haxe 编译器将从 Internet 获取该 Haxelib 并使用名为“haxelib”。这个过程似乎被 Bazel 沙箱阻止了,但我还没有找到很多关于沙箱如何工作的文档,如果这是预期的,以及是否有解决方法。我目前在 Windows 10 中工作;这是我得到的错误:

$ bazel build //:neko-lib --verbose_failures
INFO: Analyzed target //:neko-lib (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: D:/repo/validation/BUILD:3:13: HaxeCompile neko/validation.n failed (Exit 1): haxe.exe failed: error executing command
cd C:/users/user/_bazel_user/s6xipia4/execroot/__main__
external/haxe_windows_amd64/haxe.exe bazel-out/x64_windows-fastbuild/bin/build.hxml
Execution platform: @local_config_platform//:host
Unix.Unix_error(21, "open_proc", "haxelib path hx3compat")
Target //:neko-lib failed to build
INFO: Elapsed time: 1.705s, Critical Path: 0.62s
INFO: 0 processes.
FAILED: Build did NOT complete successfully
hx3compat是我要加载的 haxelib 的名称。错误 21 似乎是 "is a directory"但我不确定实际提示的是什么。这是我正在使用的运行操作:
ctx.actions.run(
outputs = [out],
inputs = inputs,
executable = haxe_cmd,
arguments = [args],
env = env,
mnemonic = "HaxeCompile",
)
haxe_cmd指向 haxe.exe 文件,而输入是:
  • bazel-out/x64_windows-fastbuild/bin/build.hxml(我正在构建的构建文件)
  • 外部/haxe_windows_amd64/haxe.exe
  • 外部/haxe_windows_amd64/haxelib.exe

  • 关于我可以尝试解决此问题的任何想法?
    更新 :我今天写了一个规则来运行有问题的命令( haxelib path hx3compat )并且有效,所以我认为这是调用该命令的错误 - 而不是命令本身。

    最佳答案

    我得到的特定错误 - Unix error 21 - 是由 Bazel 创建的 shell 没有 COMSPEC 环境变量引起的:见 herehere更多细节。通过 --action_env=COMSPEC 将该变量添加到环境中命令行让我克服了那个错误。但是,由 Haxe 进程生成的命令 shell 无法处理符号链接(symbolic link),因此尝试访问 Bazel 引入的目录会遇到很多麻烦,所以我认为通过这条路线使用 haxe 最终会失败。只是为了记录,我能够让 haxelib 命令本身通过 haxe 进程运行,所以这个问题的答案是确保设置 COMSPEC 变量。

    关于Bazel 给出 "open_proc"错误 21 运行嵌入式命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62668418/

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