golang交叉编译

参考文章:https://tech.wmzhe.com/article/97987.html

golang编译方式一般分为两种,一种是源码编译,另外一个是交叉编译

1.源码编译

这种方式需要在机器上安装相应的go sdk,可以参考环境部署相关的文章,这里不再叙述;只需要把项目代码copy到相应的机器上,在项目目录中,执行命令:go build ./main.go -o outdir,编译速度非常快,接着在outdir文件中即可看到编译后的二进制文件或exe文件

2.交叉编译

在编译到linux等其他目标平台前,需要在机器上安装MingGW c++编译环境。

更多信息请参考官网文档:https://github.com/golang/go/wiki#release-specific-information

GOOS:目标平台的操作系统(darwin、freebsd、linux、windows) 
GOARCH:目标平台的体系架构(386、amd64、arm) 
交叉编译不支持 CGO 所以要禁用它,如果要使用CGO,需要源码编译构建。

GOOS 和GOARCH的有效组合:

GOOSGOARCH
aixppc64
android386
androidamd64
androidarm
androidarm64
darwin386
darwinamd64
darwinarm
darwinarm64
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
illumosamd64
jswasm
linux386
linuxamd64
linuxarm
linuxarm64
linuxppc64
linuxppc64le
linuxmips
linuxmipsle
linuxmips64
linuxmips64le
linuxs390x
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
openbsdarm
openbsdarm64
plan9386
plan9amd64
plan9arm
solarisamd64
windows386
windowsamd64

2.1 Windows主机编译Linux,MAC客户端

Windows主机编译Windows客户端

SET CGO_ENABLED=0
SET GOOS=windows
SET GOARCH=amd64
go build -o abc-demo-windows.exe main.go

Windows主机编译LINUX客户端

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build -o abc-demo-linux main.go

Windows主机编译MAC客户端

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build -o abc-demo-mac main.go

2.2 Linux主机编译Widows,MAC客户端

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.go
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o adc-demo-mac main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go

2.3 MAC主机编译Widows,linux客户端

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.go
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o abc-demo-mac main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go

以windows下编译linux amd64示例,直接编写bat脚本,然后双击执行

可看到成功的编译一个二进制文件hai,该文件可以直接在目标平台上以 ./hai &的方式运行起来。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值