3

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

go tool: no such tool "compile"

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

go install hello.go

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

4

5 回答 5

1

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

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

感谢您的所有努力,很抱歉让您忙于这么简单的事情。

于 2015-09-03T01:01:43.910 回答
1

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

于 2017-12-10T06:19:49.183 回答
0

如果您安装 Go 1.5,您可能会摆脱这种情况,但是如果您使用任何依赖于cgo.

于 2015-09-02T03:33:23.830 回答
0

在我的情况下是由于 GOPATH 和 GOROOT 设置不正确,也许你可以检查go env. 这是一个可能有用的讨论。

于 2017-12-02T10:44:57.093 回答
0

我弄清楚读取了什么文件并导致 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,添加了一些项目的路径,造成了破坏。

于 2022-01-28T19:04:23.870 回答