Go语言MacLinuxWindows 下交叉编译

Posted HaimaBlog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言MacLinuxWindows 下交叉编译相关的知识,希望对你有一定的参考价值。

在很多时候,由于开发的方便,会有这样的场景出现,使用Mac开发或使用Windows开发,需要编译成Linux系统的执行文件,那么如何做到?Go语言提供了非常方便的命令行操作,即可实现。

1、Mac下编译Linux, Windows

# Linux
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build filename.go
 
# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build filename.go

2、Linux下编译Mac, Windows

# Mac
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build filename.go
 
# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build filename.go

3、Windows下编译Mac, Linux

# Mac
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build filename.go
 
# Linux
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build filename.go

4、参数说明

查看环境:

    $> go env
    set GOARCH=amd64
    set GOBIN=
    set GOCACHE=C:\\Users\\bboyHan\\AppData\\Local\\go-build
    set GOEXE=
    set GOHOSTARCH=amd64
    set GOHOSTOS=windows
    set GOOS=linux
    set GOPATH=C:\\Go\\workspace\\study\\src\\
    set GORACE=
    set GOROOT=C:\\Go
    set GOTMPDIR=
    set GOTOOLDIR=C:\\Go\\pkg\\tool\\windows_amd64
    set GCCGO=gccgo
    set CC=gcc
    set CXX=g++
    set CGO_ENABLED=0
    set CGO_CFLAGS=-g -O2
    set CGO_CPPFLAGS=
    set CGO_CXXFLAGS=-g -O2
    set CGO_FFLAGS=-g -O2
    set CGO_LDFLAGS=-g -O2
    set PKG_CONFIG=pkg-config
    set GOGCCFLAGS=-fPIC -m64 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\\Users\\bboyHan\\AppData\\Local\\Temp\\go-build162645406=/tmp/go-build -gno-record-gcc-switches

以上是关于Go语言MacLinuxWindows 下交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

在 MacLinuxWindows 下Go交叉编译

Golang 在 MacLinuxWindows 下交叉编译

Golang 在 MacLinuxWindows 下如何交叉编译

Golang 在 MacLinuxWindows 下如何交叉编译(转)

go 语言中windows Linux 交叉编译

使用Go语言交叉编译开发嵌入式Linux应用程序