如何进行golang交叉编译,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
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
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 下编译 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 下编译 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
默认情况下,Go的runtime
环境变量CGO_ENABLED=1
,即默认开始cgo
,允许你在Go代码中调用C代码
如果标准库中是在CGO_ENABLED=1
情况下编译的,那么编译出来的最终二进制文件可能是动态链接,所以建议设置 CGO_ENABLED=0
以避免移植过程中出现的不必要问题。
看完上述内容,你们掌握如何进行golang交叉编译的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。