golang 交叉編譯,跨平臺

由於個人本地開發環境是os x 但服務器是linux,因此須要編譯linux用的go程序,方法以下:linux

###各平臺的GOOS和GOARCH參考json

OS ARCH OS versionbootstrap

linux 386 / amd64 / arm >= Linux 2.6windows

darwin 386 / amd64 OS X (Snow Leopard + Lion)bash

freebsd 386 / amd64 >= FreeBSD 7服務器

windows 386 / amd64 >= Windows 2000ui

$ cd /usr/local/go/src $ sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bashatom

這裏並非從新編譯Go,由於安裝Go的時候,只是編譯了本地系統須要的東西;而須要跨平臺交叉編譯,須要在Go中增長對其餘平臺的支持。因此,有 ./make.bash 這麼一個過程。code

執行結果相似以下:unicode

sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash Password: ###Building C bootstrap tool. cmd/dist

###Building compilers and Go bootstrap tool for host, darwin/amd64. lib9 libbio libmach misc/pprof cmd/addr2line cmd/cov cmd/nm cmd/objdump cmd/pack cmd/prof cmd/cc …... pkg/text/template/parse pkg/text/template pkg/go/doc pkg/go/build cmd/go pkg/runtime (linux/amd64)

###Building packages and commands for host, darwin/amd64. runtime errors sync/atomic unicode unicode/utf8 math sync unicode/utf16 crypto/subtle io syscall ………. net/rpc/jsonrpc testing/iotest testing/quick

###Building packages and commands for linux/amd64. runtime errors sync/atomic unicode unicode/utf8 math sync unicode/utf16 …….. testing net/rpc/jsonrpc testing/iotest testing/quick


Installed Go for linux/amd64 in /usr/local/go Installed commands in /usr/local/go/bin

3、編譯對應平臺下的執行文件 到源代碼目錄下執行:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build sina.go

不帶前面參數的 go build 只是編譯出開發環境適用的執行文件。

相關文章
相關標籤/搜索