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

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


我已经进入/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但仍然得到同样的错误。谢谢!


此链接不能解决我的问题,因为所选答案是指向博客文章的链接,该文章严重依赖于使用博客作者bash脚本进行所有交叉编译,我只是想知道正确的方法是什么是,现在我做。


PIPIONE
浏览 281回答 1
1回答

翻翻过去那场雪

build 命令需要识别目标环境:$ GOOS=linux GOARCH=amd64 go build -v /path/to/target/package
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go