GO跨平台编译

1. 跨平台编译

默认go build的可执行文件都是在当前操作系统的可执行文件

如果需求变更为 windows下编译一个linux系统的可执行文件

2. 指定目标操作系统平台

  • 禁用CGO

    SET CGO_ENABLED=0(需要恢复时,值为1)

  • 目标平台为linux

    SET GOOS=linux(需要恢复时,值为windows)

  • 目标处理器架构是amd64

    SET GOARCH=amd64(如果没变,就不用)

使用了CGO的代码是不支持跨平台编译的

3. MAC下编译LinuxWindows平台64位可执行程序

  • Linux平台

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

  • windows平台

    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

4. Linux下编译Macwindows平台64位可执行程序

  • mac平台

    CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build

  • windows平台

    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

5. Windows下编译Mac平台64位可执行程序

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

6. Windows下编译Linux平台64位可执行程序

如果你的Windows使用的是cmd,那么按如下方式指定环境变量。

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build

如果你的Windows使用的是PowerShell终端,那么设置环境变量的语法为

$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"

恢复

$ENV:CGO_ENABLED=1
$ENV:GOOS="windows"
$ENV:GOARCH="amd64"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于Go语言是跨平台的,有时我们在自己的开发环境中开发,测试完成后可能会部署到不同的操作系统环境下,不同的操作系统...
    itoocs阅读 273评论 0 1
  • Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Ma...
    Brown_阅读 1,013评论 1 50
  • 前言 为了在不同操作系统和处理器架构上运行应用,为不同平台单独构建程序版本是很常见的场景。当开发应用的平台与部署的...
    沃趣Squids数据库公有云阅读 969评论 0 0
  • Golang 项目开发结束后,如何部署到阿里云ECS,go项目部署简单很多,不会像Java 那么复杂 需要配置很多...
    孙小兵阅读 7,538评论 2 15
  • Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。 1.Mac下编译Linux, Window...
    frambo阅读 658评论 0 0