前言
什么是交叉編譯?
交叉編譯指在某個平台編譯另一平台能使用的文件
本文列出交叉編譯的命令, 全程干貨, 不多BB
正文
本文參考官方文檔
https://golang.google.cn/doc/install/source#introduction
https://golang.google.cn/doc/install/source#environment
一條基本的編譯命令結構如下(mac/linux)
GOOS=linux GOARCH=amd64 go build main.go
windows版比較特殊(目的一致,只是win加set)
set GOOS=linux set GOARCH=amd64 go build main.go
這個命令有兩個參數(main.go不做解釋了)
GOOS --> GO,OS 生成文件執行的平台
GOPACH --> GO,PACH 平台的架構
以上這條命令就是生成在amd64架構的linux上的可執行文件
注意的是, 如果你是在同等架構和系統上編譯,例如在linux上編譯linux的文件,則什么都不用帶,go會自己判斷
GOOS和GOARCH都有多個選項,可組合,對照如下
當然,有些架構編譯可能會出現錯誤,因為對他的支持還不完善,具體請看最上方的官方文檔