2009年11月13日金曜日

UbuntuでGOを試してみた。

今回発表された新しい言語「GO」を試してみた。

参照URLは
Go Home Page

http://golang.org/doc/install.html


1. システム変数

$GOROOTと$GOBINが要るらしいから追加

export GOROOT=$HOME/dev/go
export GOBIN=$HOME/dev/bin



2. Mercurialから「GO」のソースを落とす。

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


3. GOをインストール

$ cd $GOROOT/src
$ ./all.bash
$GOARCH is set to <>, must be amd64, 386, or arm


$GOARCH変数が必要らしからGOARCHを作ってインストール再挑戦。

$ export GOARCH=386

$ ./all.bash
$GOOS is set to <>, must be darwin, linux, or nacl


$GOOSも必要らしい。。(-(エ)-)追加して再挑戦。

$ export GOOS=linux

$ ./all.bash
installed quietgcc as /home/babukuma/dev/bin/quietgcc but 'which quietgcc' fails
double-check that /home/babukuma/dev/bin is in your $PATH


(-(エ)-)PATHの追加も要るらしい。

$ export PATH=$PATH:$GOBIN

$ ./all.bash
bison -y -d cc.y
make: bison: コマンドが見つかりませんでした
make: *** [y.tab.h] エラー 127


( -(エ)-;) ふう。。。英語ができなから。こんなのが難しいな。。
読んでもよくわからないし。。どうやらbisonというのが必要らしい。インストール。。

$ sudo apt-get install bison

$ ./all.bash
--- cd ../test
0 known bugs; 0 unexpected bugs


成功!!

4. Hello GO!を作ってみる。

ソース作成
ファイルの拡張子は「.go」らしい

$ vi hello.go
package main

import "fmt"

func main() {
fmt.Printf("Hello GO!\n")
}


コンパイル
コンパイラーはx386なので「8g」を利用する。

$ 8g hello.go
$ ll
合計 12
-rw-r--r-- 1 babukuma babukuma 5160 2009-11-13 11:31 hello.8
-rw-r--r-- 1 babukuma babukuma 71 2009-11-13 11:30 hello.go

「hello.8」ファイルが生成された。

リンク
リンクをして実行可能なファイルを作る。

$ 8l hello.8
$ ll
合計 584
-rwxr-xr-x 1 babukuma babukuma 581719 2009-11-13 11:32 8.out
-rw-r--r-- 1 babukuma babukuma 5160 2009-11-13 11:31 hello.8
-rw-r--r-- 1 babukuma babukuma 71 2009-11-13 11:30 hello.go

「8.out」が出てきた。8.outは気に入らないから、出力ファイル名を指定してみた。

$ 8l -o hello.out hello.8
$ ll
合計 1156
-rwxr-xr-x 1 babukuma babukuma 581719 2009-11-13 11:32 8.out
-rw-r--r-- 1 babukuma babukuma 5160 2009-11-13 11:31 hello.8
-rw-r--r-- 1 babukuma babukuma 71 2009-11-13 11:30 hello.go
-rwxr-xr-x 1 babukuma babukuma 581719 2009-11-13 12:27 hello.out


実行

$ ./hello.out
Hello GO!


5. システム変数まとめ。
面倒だから「.bashrc」に追加した。

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



以外に簡単にできた。
お疲れ。俺