正如标题所说,我想知道如何交叉编译我的程序,以便我可以在 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
但仍然遇到相同的错误。谢谢!
This link没有解决我的问题,因为选择的答案是指向博客文章的链接,该链接严重依赖于使用博客作者 bash
脚本进行所有交叉编译,我只是想知道什么正确的做法是,现在我这样做了。
最佳答案
构建命令需要识别目标环境:
$ GOOS=linux GOARCH=amd64 go build -v /path/to/target/package
关于linux - 如何将我的 Go 程序从 Mac OS X 交叉编译到 Ubuntu 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557438/