Go 工具:没有这样的工具"compile"



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

go tool: no such tool "compile"

我正在使用GoClipse,但通过

手动运行编译
go install hello.go

得到相同的错误。当切换回为达尔文架构编译时,我现在得到相同的错误,所以基本上我完全无法编译任何用Go编写的代码。

我是通过google提供的二进制包安装的。最后,我重新安装了它,让它恢复了工作。有时候我就是找不到简单的解决办法。

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

谢谢你的努力,很抱歉让你为这么简单的事而忙碌。

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

如果你安装Go 1.5,你可能能够摆脱这种情况,但是如果你使用任何依赖于cgo的东西,你将不得不安装一个交叉编译器链接器或在虚拟机上安装Linux,以便能够交叉编译Linux。

在我的情况下是由于GOPATH和GOROOT设置不正确,也许你可以检查go env

我找出读取什么文件并导致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,为某些项目添加路径,造成破坏。

相关内容

  • 没有找到相关文章

最新更新