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解释

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

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

到此这篇关于golang交叉编译详细的文章就介绍到这了,更多相关golang交叉编译内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

以上就是golang交叉编译详细的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 其他教程