Golang 编译器/运行脚本出现问题

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

每当我尝试使用

go run .
(在 Windows 上)运行用 GO 编写的任何脚本时,它都会返回以下错误:

exec: "C:\\Users\\matti\\AppData\\Local\\Temp\\go-build1549561893\\b001\\exe\\test_script": executable file not found in %PATH%

其中 test_script 是我尝试运行的脚本的名称。首先使用

go build .
构建脚本会产生一个没有扩展名的文件,该文件不是有效的可执行文件,即使我手动添加 .exe 也是如此。如果我使用构建标志 -o 表示它需要是一个 exe,则生成的 exe 不可运行。我使用的是 GO 1.22.2。

我的猜测是,该文件夹是临时构建脚本然后调用脚本的文件夹,但由于构建会产生不可运行的文件,因此无法找到它。

其次,exec 是一个 go 包(os/exec),这让我认为当调用

go run .
时,脚本会被编译,第二个 go 脚本会调用编译后的脚本,该脚本位于错误消息中存在的路径中,使用exec.Command,因为找不到脚本,所以认为原来的命令不存在。

到目前为止我尝试过的:

  • 我曾多次尝试重新安装GO,最初我使用chocolatey安装它(它曾经是这样工作的),但我也尝试直接从网站使用安装程序安装它。
  • 我已降级到 1.22.1 和 1.21.0。
  • 我以为可能是GOPATH设置错了目录,但是运行时是正确的
    go env
  • 我认为这可能与我的电脑的实际路径有关,因为我最近安装了用于c++的opencv并将其添加到我的路径中,所以我从路径中删除了opencv,但这没有帮助

到目前为止,这些方法都没有奏效。唯一的区别是 1.21.0 的错误如下:

exec: "C:\\Users\\matti\\AppData\\Local\\Temp\\go-build1705217788\\b001\\exe\\test_script": file does not exist
windows go build path output
1个回答
0
投票

GO env 中的一些变量设置错误,即 GOARCH=wasm 和 GOOS=js。我一定是在使用 WebAssembly 时设置了它们。这反过来又编译了该环境的代码,并导致 Windows 无法运行可执行文件。

将它们改回 GOARCH=amd64 和 GOOS=windows 后,一切又恢复正常了。

© www.soinside.com 2019 - 2024. All rights reserved.