登录
首页 >  Golang >  Go教程

golang交叉编译详细

来源:脚本之家

时间:2023-01-01 14:14:07 241浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《golang交叉编译详细》,介绍一下交叉编译,希望对大家的知识积累有所帮助,助力实战开发!

1、环境变量对照表

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

GOOS | GOARCH | OS VERSION ---|---|--- linux | 386 / amd64 / arm | >= Linux 2.6 darwin | 386 / amd64 | OX X (Snow Leopard + Lion) freebsd | 386 / amd64 | >= FreeBSD 7 windows | 386 / amd64 | >= Windows 2000

2、使用

2.1 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

2.2 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

2.3 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

3、备注

3.1 CGO_ENABLED解释

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

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

以上就是《golang交叉编译详细》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表