Golang中国

mac的环境


GOARCH=”amd64”
GOBIN=””
GOEXE=””
GOHOSTARCH=”amd64”
GOHOSTOS=”darwin”
GOOS=”darwin”
GOPATH=”/Users/newsyue/Golang/GoPath:/Users/newsyue/WorkSpace/VSCode/Golang”
GORACE=””
GOROOT=”/usr/local/go”
GOTOOLDIR=”/usr/local/go/pkg/tool/darwin_amd64”
GO15VENDOREXPERIMENT=”1”
CC=”clang”
GOGCCFLAGS=”-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common”
CXX=”clang++”
CGO_ENABLED=”1”


Linux的环境
Debian 8.4
Linux debian-mac 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux


go 程序就是一个简单的fmt helloworld
编译命令
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build


linux 执行结果

root@debian-mac:/home/newsyue# ./hello
已杀死

root@debian-mac:/home/newsyue# gdb ./hello
“/home/newsyue/./hello”: not in executable format: Memory exhausted


其它补充
1:mac 编译windows平台,执行正常
2:mac 编译linux平台,执行就显示被杀死
3:linux 编译windows平台,执行正常
4:linux 编译mac平台,无法执行
5:linux 自己go run, go build后./hello 都正常

非常困惑中,请高手帮忙看看啥问题?

4 回复
newsyue
#1 newsyue • 2016-05-10 20:35

补充一下。这段程序,在另外一台debian上可以运行, 版本信息为:
Linux version 2.6.32-5-amd64 (Debian 2.6.32-39)

难道是因为内核的原因?我试过了目前新版本的ubuntu 16.04 server lts
centos 7
debian 8
debian 7.5

都不行。。。 这些内核版本都是3.0以上版本。

newsyue
#2 newsyue • 2016-05-13 15:17

没有人发生这样的问题么?就我遇到啦??

seefan
#3 seefan • 2016-05-13 17:05

真没遇到

devuser
#4 devuser • 2016-05-15 10:04

我在Mac下安装Docker,
然后下载golang的容器,在容器内编译产生Linux的版本,或Windows的版本,没有遇到问题。

Golang 1.6.2

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。