TypechoJoeTheme

半醉残影

统计

golang交叉编译,如何编译可移植跨平台golang应用

2021-06-03
/
0 评论
/
892 阅读
/
正在检测是否收录...
06/03

golang交叉编译

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,只需要按照我下面的这个环境变量表设置对应的环境变量就可以了

环境变量对照表

golang交叉编译环境变量对照表

GOOSGOARCHOS VERSION
linux386 / amd64 / arm>= Linux 2.6
darwin386 / amd64OX X (Snow Leopard + Lion)
freebsd386 / amd64>= FreeBSD 7
windows386 / amd64>= Windows 2000

使用

Windows

Windows 下编译 Mac 64位可执行程序

set CGO_ENABLED=0
set GOOS=darwin
set GOARCH=amd64

go build main.go

Windows 下编译 Linux 64位可执行程序

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

go build main.go

linux

Linux 下编译 Mac 64位可执行程序

export CGO_ENABLED=0
export GOOS=darwin
export GOARCH=amd64

go build main.go

Linux 下编译 Windows 64位可执行程序

export CGO_ENABLED=0
export GOOS=windows
export GOARCH=amd64

go build main.go

Mac OS

Mac 下编译 Windows 64位可执行程序

export CGO_ENABLED=0
export GOOS=windows
export GOARCH=amd64

go build main.go

Mac 下编译 Linux 64位可执行程序

export CGO_ENABLED=0
export GOOS=linux
export GOARCH=amd64

go build main.go

备注

CGO_ENABLED解释

默认情况下,Go的runtime环境变量CGO_ENABLED=1,即默认开始cgo,允许你在Go代码中调用C代码

如果标准库中是在CGO_ENABLED=1情况下编译的,那么编译出来的最终二进制文件可能是动态链接,所以建议设置 CGO_ENABLED=0以避免移植过程中出现的不必要问题。

朗读
赞(2)
赞赏
感谢您的支持,我会继续努力哒!

三合一收款

下面三种方式都支持哦

微信
QQ
支付宝
打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦
版权属于:

半醉残影

本文链接:

https://blog.dengyb.com/archives/87/(转载时请注明本文出处及文章链接)

评论 (0)