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解释
默认情况下,Go
的runtime
环境变量CGO_ENABLED=1
,即默认开始cgo
,允许你在Go代码中调用C代码
如果标准库中是在CGO_ENABLED=1
情况下编译的,那么编译出来的最终二进制文件可能是动态链接,所以建议设置 CGO_ENABLED=0
以避免移植过程中出现的不必要问题。
到此这篇关于golang
交叉编译详细的文章就介绍到这了,更多相关golang
交叉编译内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
golang使用sync.singleflight解决热点缓存穿透问题
在go的sync包中,有一个singleflight包,里面有一个 singleflight.go文件,代码加注释,一共200行出头,通过 singleflight可以很容易实现缓存和去重的效果,避免重复计算,接下来我们就给大家详细介绍一下sync.singleflight如何解决热点缓存穿透问题2023-07-07Go语言同步等待组sync.WaitGroup结构体对象方法详解
这篇文章主要为大家介绍了Go语言同步等待组sync.WaitGroup结构体对象方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-08-08
最新评论