获取代码
以下命令会创建一个go目录。切换到相应目录,并且确保当前位置不存在go目录,运行命令:
hg clone -r release https://go.googlecode.com/hg/ go
国内访问google一直不稳定,所以这个方式可能无法正常获取GO源码
本人打包的一份GO源码,版本是1.2.2,可以直接下载
wget http://blog.xinfilm.com/softdir/go-1.2.2.tar.gz
安装Go
编译go环境:
cd go/src
./all.bash
编译完成后,结尾会打印以下信息
编写程序
以file.go代码为例,用以下命令编译:
6g file.go
6g是针对amd64指令的编译器,它的输出文件为 file.6。其中 ‘6’ 表示文件是 amd64指令的输出文件。 如果是386和arm
处理器,后缀则为 ‘8’ 和 ‘5’。 也就是说,如果你用的是386处理器,那么应该用8g命令编译, 输出的文件为file.8。
然后用以下命令连接:
6l file.6
运行程序:
./6.out
一个完整的例子:
cat >hello.go <<EOF
package main
import "fmt"
func main() {
fmt.Printf("hello, world
")
}
EOF
6g hello.go
6l hello.6
./6.out
hello, world
环境变量
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 变量也包含这个路径,这样编译器可以找到正确的执行文件。
$GOARM (optional, arm, default=6)
需要说明的是$GOARCH和$GOOS环境变量表示的是目标代码 运行环境,和当前使用的平台是无关的。这个对于交叉编译是很方便的。
在.bashrc文件中设置以下环境变量:
export GOROOT=$HOME/go
export GOARCH=amd64
export GOOS=linux
export PATH=.:$PATH:$GOBIN
检查是否能正常使用:
source ~/.bashrc
cd ~
6g -V