Golang 交叉编译之一文详解

在这里插入图片描述

博客原文

Golang 中的交叉编译

在 Golang 中,交叉编译指的是在同一台机器上生成针对不同操作系统或硬件架构的二进制文件。这在开发跨平台应用或构建特定平台的发布版本时非常有用。

不同操作系统间的编译

Linux 下编译

windows
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
macos
$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go

windows 下编译

Linux
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go

推荐 git 终端: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

macos
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go

git 终端: CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go

macos 下编译

Linux
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
windows
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

不同架构下的编译

amd64

$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

x86

$ CGO_ENABLED=0 GOOS=linux GOARCH=386 go build main.go

注意不是 x86

上面几个示例中各环境变量的意思如下:

  • CGO_ENABLED:CGO_ENABLED=0 意思是禁用 CGO,因为交叉编译不能启用 CGO。
  • GOOS:表示目标平台,例如 mac 系统对应 darwin,linux 系统对应 linux,windows 系统对应 windows等。
  • GOARCH:目标平台的架构,例如 amd64,arm等。

参考

  1. [Golang 中的交叉编译详解 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/649520911#:~:text=Golang 中的交叉编译在,Golang 中,交叉编译指的是在同一台机器上生成针对不同操作系统或硬件架构的二进制文件。 这在开发跨平台应用或构建特定平台的发布版本时非常有用。)
  2. Go 交叉编译 (跨平台编译) - 知乎 (zhihu.com)

相关推荐

  1. Golang 并发编程详解

    2024-01-12 15:44:01       56 阅读
  2. Golang 在 Mac、Linux、Windows 下如何交叉编译

    2024-01-12 15:44:01       61 阅读
  3. 记一次golang交叉编译的问题

    2024-01-12 15:44:01       35 阅读
  4. 交叉编译

    2024-01-12 15:44:01       38 阅读
  5. LDAP报交互流程详解

    2024-01-12 15:44:01       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-12 15:44:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-12 15:44:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-12 15:44:01       82 阅读
  4. Python语言-面向对象

    2024-01-12 15:44:01       91 阅读

热门阅读

  1. 实名核验、企业工商、生活常用等API分享

    2024-01-12 15:44:01       48 阅读
  2. 代码随想录 字符串

    2024-01-12 15:44:01       61 阅读
  3. v-model 的原理

    2024-01-12 15:44:01       55 阅读
  4. Shell编程--grep、egrep

    2024-01-12 15:44:01       40 阅读
  5. python3.7conda安装opencv

    2024-01-12 15:44:01       58 阅读
  6. git命令

    git命令

    2024-01-12 15:44:01      52 阅读