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