我正在尝试为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),并且一切都在第一次运行。 如果您不想擦除计算机,则只需确保环顾四周即可查看是否存在版本冲突。

以前,我对这种事情感到ung恼(通过apt-get安装node.js时,意识到它已经过时了许多版本,然后通过源代码删除并安装node.js),所以如果有人正在阅读此书, 通过apt-get安装软件,然后进行升级时请务必小心,因为您可能会遇到类似的版本问题!