正如标题所说,我想知道如何交叉编译我的程序,以便我可以在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