我正在尝试为 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 安装软件然后升级时要小心,因为您可能会遇到与我类似的版本问题!
关于linux - Golang交叉编译: gccgo - unrecognized command line option `-marm` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27841032/