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

Dat*_*sik 17 linux macos go

正如标题所说,我想知道如何交叉编译我的程序,以便我可以在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#
Run Code Online (Sandbox Code Playgroud)

不知道我做错了什么信息会非常感谢.

我也试过这样做,GOARCH=386但仍然得到同样的错误.谢谢!

这个链接并没有解决我的问题,因为所选的答案是一个博客帖子的链接,该帖子严重依赖于使用博客编写者bash脚本进行所有交叉编译,我只是想知道正确的方法是什么过去了,现在我做了.

Sno*_*lem 64

build命令需要标识目标环境:

$ GOOS=linux GOARCH=amd64 go build -v /path/to/target/package
Run Code Online (Sandbox Code Playgroud)

  • 非常容易,值得赞赏. (3认同)