Golang 交叉编译:gccgo - 无法识别的命令行选项`-marm`

Golang cross-compilation: gccgo - unrecognized command line option `-marm`

我正在尝试为 linux/arm 编译 Go 应用程序,但在我的 Ubuntu 机器上一直遇到问题。当我在我的源目录中运行 GOOS=linux GOARCH=arm go build 时,我得到大量错误,这些错误是:

# github.com/huin/mqtt

gccgo: error: unrecognized command line option `-marm`

运行 gccgo --help 通知我以 -g、-f -m(和其他)开头的选项将传递给 gccgo 启动的任何子进程,所以我不知道它是哪个进程发送 -marm 到。

有什么线索吗? Ubuntu 14.10 LTS,64 位

感谢 Dean 的提示,我已经解决了问题。

问题是由于我通过 apt-get 安装 Go,然后删除它(通过 apt-get),然后从 golang 网站安装 Go。仍然有第一次安装遗留下来的文件,这些文件可能是旧版本,因此不支持 -marm 标志。

无论如何我都打算擦除我的开发机器,所以我做了,再次安装了 Ubuntu,从网站上安装了 Go(不是通过 apt-get)并且第一次一切正常。如果你不想擦你的机器,那么一定要四处看看是否有版本冲突。

我以前就被这种东西刺痛过(当通过 apt-get 安装 node.js 时,意识到它有很多版本已过时,然后删除并通过源安装 node.js ),所以如果有人正在阅读这篇文章,在通过 apt-get 安装软件然后升级时要小心,因为你可能会像我一样遇到类似的版本问题!