转到工具:没有这样的工具 "compile"

go tool: no such tool "compile"

我最近开始尝试编写一些基于 Web 的应用程序。起初,一切都很顺利,直到我想为不同的平台交叉编译一个二进制文件。我是 运行 MacOS,我想为 linux 编译二进制文件,所以我将 GOOS 更改为 linux,将 GOARCH 更改为 amd64。从那以后,我总是收到错误消息

go tool: no such tool "compile"

我正在使用 GoClipse,但是 运行 手动编译

go install hello.go

我得到了同样的错误。当改回为 darwin 架构编译时,我现在得到同样的错误,所以基本上我现在完全无法编译任何用 Go 编写的代码。

如果你安装了 Go 1.5,你也许可以摆脱它,但是如果你使用任何依赖于 cgo 的东西,你将不得不安装一个交叉编译器链接器或安装 Linux 在虚拟机上能够为 Linux.

交叉编译

我是通过google提供的二进制包安装的。最后,我实际上只是重新安装它就让它恢复了工作。有时我只是对简单的解决方案视而不见。

之后,我在linux机器上通过运行 env GOOS=linux GOARCH=arm GOROOT_BOOTSTRAP=/usr/local/go ./make.bash --no-clean从Go sources目录编译了必要的交叉编译器后成功交叉编译

感谢大家的努力,很抱歉让你们忙于这么简单的事情。

我的情况是因为GOPATH和GOROOT设置不正确,也许你可以检查一下go envHere is a discussion 可能会有用。

您很可能安装了错误的 x64 或 x386 软件包。我安装了 32 运行 64 位。重新安装固定。祝你好运。

我figured-out读取什么文件导致Go在错误的地方寻找编译二进制文件的方式可以通过以下方式解决: $ strace go tool -n compile 2>&1 |grep openat

openat(AT_FDCWD, "/home/nwaizer/.config/go/env", O_RDONLY|O_CLOEXEC) = 3

在那个文件中,IDE Goland,添加了一些项目的路径,造成了破坏。