Golang:修订间差异
来自Ubuntu中文
跳到导航跳到搜索
Lifulinghan(留言 | 贡献) 无编辑摘要 |
Lifulinghan(留言 | 贡献) 无编辑摘要 |
||
第79行: | 第79行: | ||
} | } | ||
</pre> | </pre> | ||
* | *使用golang官网编译器('注意:'6g是amd64的go编译器,它生成的是.6文件。而386一般使用8g命令,它生成的一般是.8格式的文件。当然还有一个5g的命令是用于arm的cpu,同理amd64用6l,386用8l,arm用5l的链接器!) | ||
<pre> | <pre> | ||
$ 6g hello.go | $ 6g hello.go |
2011年12月29日 (四) 13:09的版本
golang的简介
Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
golang编译环境的配置
golang目前有两种编译,一个是golang官方提供的,另一个是gnu提供的gccgo;
golang官方编译器安装与配置
- 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的
$ sudo apt-get install bison gawk gcc libc6-dev make
- 安装mercurial工具,目的使用hg命令来提取golang的源代码
$ sudo apt-get install mercurial
- 代取提取,如果您的网速比较慢的话,此步要多花点时间
$ hg clone -u release https://go.googlecode.com/hg/ go
- 编译golang
$ cd go/src $ ./all.bash
假如正常的话,会出现下面的信息
ALL TESTS PASSED --- Installed Go for linux/amd64 in /home/you/go. Installed commands in /home/you/go/bin. *** You need to add /home/you/go/bin to your $PATH. *** The compiler is 6g.
*配置系统环境 你在~/.bashrc或者 ~/.profile写入你的配置文件,下面我会以.bashrc来说明; 那么,golang要设置那些变量呢? 1、$GOROOT golang的目录,这里我们是~/go 2、$GOOS 和 $GOARCH 系统的参数 设置方法如下:
$GOOS $GOARCH darwin 386 darwin amd64 freebsd 386 freebsd amd64 linux 386 linux amd64 linux arm incomplete windows 386 incomplete
3、$GOBIN golang的bin目录,这里是~/go/bin 下面是一个配置例子:请大家特别注意$GOOS 和 $GOARCH 的配置
$ gedit ~/.bashrc
然后加入
export GOROOT=~/go export GOARCH=386 export GOOS=linux epxort GOBIN=GOROOT/bin export PATH=$PATH:$GOBIN
gccgo安装 gccgo似乎是从4.6开始支持的。也就是说,要在ubuntu用命令安装gccgo只有ubuntu 11.10包括且以上的版本。
大家可以试一下命令
gcc -v
,查看
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin
如果有一个go,说明你的gcc支持golang,那么就执行以下命令安装gcc-go(大家试一下这命令,我不敢确定):
sudo apt-get install gcc-go
如果用源代码编译的话,请参照gcc编译。这里就不介绍了!
Hello world
- 新建一个hello.go,并写入以下内容:
package main import "fmt" func main() { fmt.Printf("hello, world\n") }
- 使用golang官网编译器('注意:'6g是amd64的go编译器,它生成的是.6文件。而386一般使用8g命令,它生成的一般是.8格式的文件。当然还有一个5g的命令是用于arm的cpu,同理amd64用6l,386用8l,arm用5l的链接器!)
$ 6g hello.go $ 6l hello.6 $ ./6.out hello, world
- 使用gccgo编译
$ gccgo hello.go $./a.out hello,world