Go 是一个开源项目,采用 BSD授权协议 。目前有两种方式使用 Go 语言。这里主要讲述如何使用 Go 专用的 gc
系列工具( 6g
、 8g
等)。另一个可选的编译器是是基于 gcc 后端的 gccgo
编译器。关于 gccgo
的细节清参考 安装并使用 gccgo编译器 。 Go 现在还没有 IDE 开发工具,编写代码只能用记事本、 Vi 、 Emacs 等文本编辑器。
Go 目前支持两种操作系统三种类型 CPU 指令集。其中 Linux 和 Mac 平台可以通用,但是 ARM 目标代码还不能运行在 OS X 系统上。
下面是针对不同CPU 指令集,编译后目标代码的差异:
amd64
(a.k.a. x86-64
); 6g
,6l,6c,6a
目前最成熟的实现。编译器进行了很好的优化,可以产生更优的目标代码(尽管有时候gccgo 可能做的更好)。
386 (a.k.a. x86 or x86-32); 8g,8l,8c,8a
虽然没有amd64 平台那么成熟,但是已经非常稳定了。
arm
(a.k.a. ARM
); 5g
,5l,5c,5a
还有一些问题,还在完善中。重要针对QEMU 和android 手机环境测试。
所有的平台,出了关于操作系统借口部分有一些差异外,Go 的运行库支持都是一样的。包含基于 mark-and-sweep 算法()的垃圾内存回收支持,高效的数组、字符串以及切片,还有独立的堆栈支持和goroutine 的实现等。
当前已有爱好者将其移植到Windows 平台下,如果想在Window 平台下运行Go, 可以从http://code.google.com/p/gomingw/ 网站下载到二进制发布版本。
Go 使用Mercurial 版本管理系统,管理代码的。如果你没有Mercurial ,可以从Mercurial 官网(http://mercurial.selenic.com/) 下载。
Linux 平台下用以下命令安装:
$ sudo easy_install mercurial
Window 平台下可以用 Tortoisehg 。
确保GOROOT
不存在或者是空目录。然后从仓库检出代码:
$ hg clone -r release https://go.googlecode.com/hg/ GOROOT
Go 编译器需要三个必须的环境变量和一个可选的环境变量。环境变量在.bashrc
或其他配置文件中设置。
$GOROOT
Go 安装包的根目录。通常是放在$HOME/go
,当然也可以是其他位置。
$GOOS
and 和 $GOARCH
这两个环境变量表示目标代码的操作系统和CPU 类型。$GOOS 选项有linux 、 freebsd 、darwin (Mac OS X 10.5 or 10.6) 和 nacl (Chrome 的Native Client 接口,还未完成) 。$GOARCH 的 选项有amd64 (64-bit x86 ,目前最成熟) 、386 (32-bit x86) 、 和arm (32-bit ARM ,还未完成) 。下面是$GOOS 和 $GOARCH 的可能组合:
|
$GOOS |
$GOARCH |
|
darwin |
386 |
|
darwin |
amd64 |
|
freebsd |
386 |
|
freebsd |
amd64 |
|
linux |
386 |
|
linux |
amd64 |
|
linux |
arm |
|
nacl |
386 |
$GOBIN
(optional) (可选)
指明用于存放go 的二进制程序目录。如果是没设置$GOBIN
环境变量, 则默认是安装在$HOME/bin
。如果设置了该变量,需要确保$PATH
变量也包含这个路径,这样编译器可以找到正确的执行文件。
需要说明的是$GOARCH
和$GOOS
环境变量表示的是目标代码运行环境,和当前使用的平台是无关的。这个对于交叉编译是很方便的。
在.bashrc
文件中设置以下环境变量:
export GOROOT=$HOME/go
export GOARCH=amd64
export GOOS=linux
用以下命令再检测一次环境变量。
$ env | grep '^GO'
Window 平台下环境变量设置
GOROOT=C:/go
GOARCH=386
GOOS=windows
GOBIN=%GOROOT%/bin
PATH=%PATH%;%GOBIN%/;
注: Gomingw 2010-05-04 前的版本GOOS 变量应设置为mingw
Go 的工具链采用C 语言编写。因此要编译Go 工具,需要现安装GCC 、C 标准库、Bison 分析器、以及make 、awk 和ed 等开发工具。对于OS X 系统,它们可以作为Xcode 的插件。对于Linux 系统,可以用以下命令安装:
$ sudo apt-get install bison gcc libc6-dev ed gawk make
(如果是其他Linux 版本,可以用类似命令安装)。
运行以下命令,构建Go :
$ cd $GOROOT/src
$ ./all.bash
编译完成后,结尾会打印以下信息。
--- cd ../test
N known bugs; 0 unexpected bugs
Windows 平台下,可以从Gomingw 网站(http://code.google.com/p/gomingw/ ) 下载二进制,解压到指定目录,并设定好环境变量,即可运行。