avatar

目录
Go打包二进制文件

最近有几个需要刷数据的任务,单独写接口,太麻烦,还要走发版流程,简单粗暴一些,就直接写脚本,大佬们 review 一下,跳板机上直接运行了。(review 代码、审核等正常研发流程,还是要走呀,不可以太直接粗暴。)

go 不像 java 等运行于JVM之上的语言,也不像 phppython 等解释性语言,go语言可打包成目标平台二进制文件是其一大优势,因此,go项目在服务器不需要配置go环境和依赖就可跑起来。

先使用go env 看看mac上返回的结果,抛弃一些暂时不重要的结果,我们只看这些:

bash
1
2
3
GOARCH="amd64"
GOOS="darwin"
CGO_ENABLED="1"

*CGO_ENABLED表示不使用cgo

*GOOS表示目标平台系统(Windows,linux,darwin「mac os」等等)

*GOARCH 表示目标系统架构(arm arm64 386 amd64 等等)

接下来,就可以编译成Linux下可执行文件

bash
1
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

编译成Windows下可执行文件

bash
1
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

当然,我当时是写了多个脚本文件,都分别编译,那就 go bulid后指明文件即可。

文章作者: Viola Tangxl
文章链接: https://violatangxl.github.io/2021/01/03/go-cross-complie/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 椰子是只猫
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论