我如何交叉编译我的Go程序从Mac OS X到Ubuntu 64位

正如标题所说,我想知道如何交叉编译我的程序,以便我可以在Ubuntu 64位上运行它

我进入了/usr/local/go/src文件夹并运行

GOOS=linux GOARCH=amd64 ./make.bash --no-clean

一切都编好了

然后进入我的项目目录,然后运行go build -v -a ,然后把编译好的二进制文件移到我的linux服务器上,但是在运行的时候出现这个错误:

 root@PanicCSGO40:~/test# ./test -bash: ./test: cannot execute binary file: Exec format error root@PanicCSGO40:~/test# sudo ./test ./test: 1: ./test: Syntax error: "(" unexpected root@PanicCSGO40:~/test# 

不知道我在做什么错误的任何信息将是非常感谢。

我也试着用GOARCH=386来做,但仍然得到相同的错误。 谢谢!

这个链接并不能解决我的问题,因为所选的答案是一个博客post的链接,这个博客post在很大程度上依赖于使用博客作者bash脚本进行交叉编译,我只是想知道正确的方法它是,现在我做。

构建命令需要确定目标环境:

 $ GOOS=linux GOARCH=amd64 go build -v /path/to/target/package