over-golang/03-工程管理/09-交叉编译.md
2021-07-02 18:11:59 +08:00

27 lines
864 B
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 交叉编译
交叉编译是在一个平台上生成另一个平台上的可执行代码
### 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
```