Golang 中国

go版本 1.9.2
本机环境可以正常编译运行
执行

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

编译出来的文件本机不可执行
放到linux上也不能执行
但是在windows系统下
执行

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build

编译出来的文件在linux上是可执行的
mac下编译linux是还需要做其他工作吗?
在linux运行提示 段错误
求解啊!

求助啊!!!!! T.T

6 回复
seefan
#1 seefan • 2017-10-31 19:01

你放linux上编译就行了,服务器的cpu有至强的,mac编译的运行不了。

holdno
#2 holdno • 2017-11-01 10:13

可是我用公司的mac交叉编译后 linux就可以运行啊
难道因为放在公司的15pro
家里的是13pro?

MarksGui
#3 MarksGui • 2017-11-01 18:48

mac下直接运行 :CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build 就可以了! 你如果以前在服务器上运行过同样的程序,那么再次编译后需要先手动结束之前的进程

holdno
#4 holdno • 2017-11-02 14:16

然而我的一台macbook 13寸编译后 发布到linux 运行提示段错误

Zhangyc310
#5 Zhangyc310 • 2017-11-06 13:54

错误提示是什么?可能默认的linux有个包没有安装

seefan
#6 seefan • 2017-11-09 13:49

再次提醒哈,重点是cpu的类型不同,同样是x64,但内核还是不同的,单用amd64是不能区分的。我的解决办法就是直接到那台至强的机器上编,就可以分发了。32位没有这个问题。

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