标签 - golang

? golang ?    2014-01-16 11:47:07    1297    0    0

因为我的本地开发环境是os x 但服务器是linux,所以需要编译linux用的go程序,方法如下:

各平台的GOOS和GOARCH参考

  • linux 386 / amd64 / arm >= Linux 2.6
  • darwin 386 / amd64 OS X (Snow Leopard + Lion)
  • freebsd 386 / amd64 >= FreeBSD 7
  • windows 386 / amd64 >= Windows 2000
  • 编译golang

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

这里并不是重新编译Go,因为安装Go的时候,只是编译了本地系统需要的东西;而需要跨平台交叉编译,需要在Go中增加对其他平台的支持。所以,有 ./make.bash 这么一个过程。

执行结果类似如下:

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