转到工具:没有这样的工具 "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 env
。 Here 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,添加了一些项目的路径,造成了破坏。
我最近开始尝试编写一些基于 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 env
。 Here 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,添加了一些项目的路径,造成了破坏。