我的環境:
- 64位 windows 10
- go version go1.9.1 windows/amd64
1. 安裝MinGW-w64
我的系統是64位win10,早期版本的MinGW我安裝后編譯go的相關工具會一路報錯,換成mingw-w64就可以順利編譯,下載地址:
http://sourceforge.net/projects/mingw-w64/
下載完進行安裝,處理器架構選擇x86_64(64位),其他選項使用默認,下一步選擇安裝路徑,假設為C:\MinGW,按下一步開始下載安裝。最后把 C:\MinGW\mingw64\bin 加入到系統環境變量。
2. 構建Go標准包
進入到go的src目錄下,我的是 C:\go\src,執行 all.bat 進行編譯,不出意外的話很快就會完成。
接下來就可以在windows下編譯linux平台的二進制文件了,進入項目目錄,創建一個批處理文件 make-linux.bat,輸入以下命令:
:: 設置目標環境處理器架構
set GOARCH=amd64
:: 設置目標操作系統
set GOOS=linux
:: 開始編譯
go build
pause
保存后運行,就可以看到當前目錄下已經編譯生成了可在64位linux環境下運行的可執行文件。
環境變量 GOARCH 和 GOOS 分別用來指定編譯目標環境的處理器架構和操作系統類型,支持以下組合:
$GOOS $GOARCH
darwin 386
darwin amd64
dragonfly 386
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
plan9 386
plan9 amd64
solaris amd64
windows 386
windows amd64
注意Go語言對系統是有要求的,版本太低的系統可能不支持,具體可以看這里 https://golang.org/doc/install
3. 使用交叉編譯工具Gox
gox 是一個交叉編譯的輔助工具,項目地址在 https://github.com/mitchellh/gox
使用 go get github.com/mitchellh/gox 進行安裝后會在 $GOPATH/bin 目錄下生成 gox.exe,為了方便以后使用,最好拷到 c:\go\bin 目錄下。
然后進入到項目目錄,執行 gox 即可一次性完成所有平台的編譯。
$ gox
Number of parallel builds: 4
如果只想編譯64位linux和windows下的程序,可使用:
gox -os "windows linux" -arch amd64
更多用法請看幫助信息
gox -h