跳到主要内容

交叉编译

一 交叉编译

交叉编译是在一个平台上生成另一个平台上的可执行代码。

1.1 Go1.5及之后的交叉编译

Go1.5编译工具链也是使用Go语言书写,Go编译器内置交叉编译功能,只需要时和之GOOS和GOARCH即可进行交叉编译:

# 进入源码目录

# 编译为Linux目标文件(如果要编译为win,则GOOS=windows)
GO ENABLED=O GOOS=linux GOARCH=amd64 go build xxx.go

1.2 Go1.4及之前的交叉编译

Go1.4之前,由于编译器是C语言书写,交叉编译前需要在当前平台构建一个目标平台的编译环境,然后通过设置GOOS和GOARCH进行交叉编译:

# 进入源码目录

# 在Linux下构建Win的交叉编译环境
CGO ENABLED=O GOOS=windows GOARCH=amd64 . /make . bash

# 交叉编译
CGO ENABLED= O GOOS=windows GOARCH=amd64 go build xxx.go