golang交叉編譯工具,gox使用入門

gox入門教程

先說下交叉編譯是什麼? 交叉編譯也就是你能夠在linux上編譯出能夠在windows上運行的程序,在32位系統編譯出64位系統運行的程序。html

gox就是方便你使用golang的交叉編譯的工具。linux

安裝gox

首先你的機器上須要裝有golang。配置好了GOROOT,GOPATH這兩個環境變量。 我機器上的配置是這個樣子(僅供參考)git

export GOROOT=$HOME/go
export GOPATH=$HOME/goproj
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

安裝gox其實很簡單(只須要2步)。github

go get github.com/mitchellh/gox

以後命令行輸入gox -h,應該會用輸出的,否則你要檢查下PATH變量設置的是否正確。golang

下一步須要編譯出其餘平臺須要的庫。這步有一點慢,要有點耐心。windows

gox -build-toolchain

輸出大概是這個樣子工具

The toolchain build can't be parallelized because 	compiling a single
Go source directory can only be done for one platform at a time. Therefore,
the toolchain for each platform will be built one at a time.

--> Toolchain: darwin/386
--> Toolchain: darwin/amd64
...

當這一步完成時,gox已經能夠開始能用了。學習

使用gox(簡單入門)

下面咱們來體驗一下gox的強大。 須要注意的是gox無法指定一個文件進行編譯的。ui

爲方便起見,咱們先到到$GOPATH/src下,創建一個hello文件夾。隨便寫個hello.go程序。好比操作系統

package main
func main() {
	println("hello world")
}

進入到程序目錄中,直接運行gox。程序會一口氣生成17個文件。橫跨windows,linux,mac,freebsd,netbsd五大操做系統。以及3種了下的處理器(38六、amd6四、arm) 關於處理器的介紹能夠看看這個http://www.361way.com/cpuinfo/1510.html arm類型的處理器,在手機上用的比較多。

使用gox(指定生成的平臺(OS)和處理器(ARCH))

不少的選項其實gox -h的幫助均可以查的很清楚。

若是咱們想生成linux和windows上的程序,只要經過一下命令:

gox -os "windows linux" -arch amd64

目錄下你就能看到生成出來的兩個程序

hello_linux_amd64
hello_windows_amd64.exe

也能夠這樣用,效果與剛纔的命令等價

gox -osarch "windows/amd64 linux/amd64"

進階

還能夠繼續學習的東西goxc, 該工具封裝了gox提供了更爲強大的功能。

可能遇到的問題

  1. 交叉編譯暫時還不支持CGO(估計再過1年也不會支持)

相關資源

相關文章
相關標籤/搜索