White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

GO! for Ubuntu 9.10

に触発されてこっちでもやってみる。しょぼいけど。


環境はUbuntu 9.10(Karmic Koala) x86

まずディレクトリ作る

$ cd ~
$ mkdir go
$ mkdir bin

次にパスの設定をする。うちはbash使ってるので.bashrcに追記

export GOROOT=$HOME/go
export GOOS=linux
export GOARCH=386
export GOBIN=$HOME/bin
export PATH=$GOBIN:$PATH

$ source .bashrc

ソースを取ってくる為にmercurialを入れる

$ sudo apt-get install mercurial

リポジトリからファイルを取ってくる

$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT

#どうでもいいけどhg cloneはgit cloneと違ってディレクトリ作らないのか

コンパイルに必要なツールを入れる

$ sudo apt-get install bison gcc libc6-dev ed

goをコンパイルする

$ cd $GOROOT/src
$ ./all.bash
...
0 known bugs; 0 unexpected bugs

amachangとこと違って全部通ったっぽい。

$GOBINにインストールされたファイル

6cov 6prof 8c 8l ebnflint godoc gopack goyacc quietgcc
6nm 8a 8g cgo godefs gofmt gotest hgpatch

Hello,worldを書く

$ cd ~/src
$ mkdir go
$ cd go
$ vim hello_world.go

vimの部分は好きなエディタで。下のファイルを入力。

package main

import fmt "fmt"

func main() {
fmt.Printf("Hello, world; or こんにちはこんにちは\n");
}

utf-8で保存すること。(Ubutuの場合そのままだけど)pythonみたいに#-*- coding:sjis -*-とかはしなくていいですね。ぱちぱちぱちぱち。

コンパイル

x86 32bit版だと次のコマンドでコンパイルする。

$ 8g hello_world.go

なぜか8nmというのが無くて、6nmでオブジェクトのシンボルが見れる。

$ 6nm hello_world.8
...
T main·init
D main·initdone·
T main·main
...

リンク

$ 8l hello_world.8

実行

$ ./8.out
Hello, world; or こんにちはこんにちは