由于个人本地开发环境是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 只是编译出开发环境适用的执行文件。