golang无法执行二进制文件:exec格式错误

时间:2016-03-24 10:50:25

标签: go

my go env

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT=""
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

我在我的mac上编译并成功执行了二进制文件,然后将其复制到上面显示go env的ubuntu机器上。当我调用myprog二进制文件时,我得到了

bash: /usr/local/go/bin/myprog: cannot execute binary file: Exec format error

2 个答案:

答案 0 :(得分:32)

从1.5开始,交叉编译器变得非常简单。像

这样的东西
foreach ($row_RoomAudit as $key => $val) {
       if (strpos($val, '1') !== FALSE && substr( $val, 0, 3)=='Seq' ){
          print "$key = $val\n";
       }
    }

请参阅http://dave.cheney.net/2015/08/22/cross-compilation-with-go-1-5

答案 1 :(得分:2)

我遇到了同样的问题。我安装了64位版本的go而不是32位版本。安装32位版本后,它工作正常。