Bazel 给出 "open_proc" 错误 21 运行 嵌入式命令
Bazel giving "open_proc" error 21 running embedded command
我正在为 Haxe 创建一个 Bazel 扩展,虽然我在构建方面取得了一些初步成功,但我遇到了障碍,我不确定正确的方法是什么.
在 Haxe 中,如果您在 build.hxml 文件中声明对 Haxelib 的依赖性,则当您执行构建时,Haxe 编译器将从互联网上获取该 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(我正在构建的构建文件)
- external/haxe_windows_amd64/haxe.exe
- external/haxe_windows_amd64/haxelib.exe
关于我可以尝试解决这个问题的事情有什么想法吗?
更新:我今天写了一条规则,运行s 有问题的命令(haxelib path hx3compat
)并且有效,所以我认为这是一个调用该命令时出错 - 而不是命令本身。
我正在为 Haxe 创建一个 Bazel 扩展,虽然我在构建方面取得了一些初步成功,但我遇到了障碍,我不确定正确的方法是什么.
在 Haxe 中,如果您在 build.hxml 文件中声明对 Haxelib 的依赖性,则当您执行构建时,Haxe 编译器将从互联网上获取该 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(我正在构建的构建文件)
- external/haxe_windows_amd64/haxe.exe
- external/haxe_windows_amd64/haxelib.exe
关于我可以尝试解决这个问题的事情有什么想法吗?
更新:我今天写了一条规则,运行s 有问题的命令(haxelib path hx3compat
)并且有效,所以我认为这是一个调用该命令时出错 - 而不是命令本身。