GoをXubuntuに入れてみる

先のエントリで会社のVM中のCentOSに入れたGoですが、帰宅して自宅PCのXubuntu上にも入れてみました。

基本的にインストール手順は同じ。

OS: Ubuntu 9.10
CPU: Atom 330
Memory: 1GB

なので、環境変数「GOOS=”linux”」「GOARCH=”386″」も同じ...
と思いましたが、Atom 330 だから64bitでいける筈! そんなわけで、「GOARCH="amd64"」にしてみました。 で、

$ apt-cache pkgnames | egrep '^(bison|gcc|libc6-dev|ed)$'<br>
bison<br>
ed<br>
gcc<br>
libc6-dev
bison
ed
gcc
libc6-dev

となったので、取り敢えず必要とされるパッケージは揃ってるな... と思ったら然に非ず。 ナンかbisonでエラーが出ます...orz 仕方ないので

$ sudo apt-get install bison

とかすると、追加でm4関連のパッケージがインストールされました。なんだかなー さて気を取り直して...

$ cd $GOROOT/src<br>
$ time ./all.bash<br>
[...snip...]<br>
%%%% making libcgo %%%%<br>
gcc -m64 -O2 -fPIC -o linux_amd64.o -c linux_amd64.c<br>
gcc -m64 -O2 -fPIC -o amd64.o -c amd64.S<br>
gcc -m64 -O2 -fPIC -o util.o -c util.c<br>
In file included from /usr/include/features.h:378,<br>
from /usr/include/stdint.h:26,<br>
from libcgo.h:5,<br>
from util.c:5:<br>
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory In file included from /usr/include/features.h:378,<br>
from /usr/include/pthread.h:23,<br>
from linux_amd64.c:5:<br>
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory<br>
make: *** [util.o] エラー 1<br>
make: *** 未完了のジョブを待っています....<br>
make: *** [linux_amd64.o] エラー 1<br>
<br>
real 1m18.451s<br>
user 2m58.555s<br>
sys 0m21.285s
$ time ./all.bash
[...snip...]
%%%% making libcgo %%%%
gcc -m64 -O2 -fPIC -o linux_amd64.o -c linux_amd64.c
gcc -m64 -O2 -fPIC -o amd64.o -c amd64.S
gcc -m64 -O2 -fPIC -o util.o -c util.c
In file included from /usr/include/features.h:378,
from /usr/include/stdint.h:26,
from libcgo.h:5,
from util.c:5:
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory In file included from /usr/include/features.h:378,
from /usr/include/pthread.h:23,
from linux_amd64.c:5:
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory
make: *** [util.o] エラー 1
make: *** 未完了のジョブを待っています....
make: *** [linux_amd64.o] エラー 1

real 1m18.451s
user 2m58.555s
sys 0m21.285s

だめですた...orz そういやOSは32bit版を入れた気がする。64bit用のヘッダとか入ってるわけないか。 仕方無しにやっぱ32bitの「GOARCH=386」で。

$ time ./all.bash<br>
[...snip...]<br>
--- cd ../test<br>
0 known bugs; 0 unexpected bugs<br>
<br>
real 6m56.743s<br>
user 7m52.618s<br>
sys 0m55.495s
[...snip...]
--- cd ../test
0 known bugs; 0 unexpected bugs

real 6m56.743s
user 7m52.618s
sys 0m55.495s

インストール完了。 ついでにTutorialの最初の一歩、恒例の「Hello,world」を。 ちなみに $GOARCH が 386 だと、

  • コンパイラ $GOBIN/8g
  • リンカ $GOBIN/8l

みたいですな。なので...

$ cd ~/work/dev $ vi helloworld.go
<pre><code class="bash">/** *<br>
  Hello, world<br>
**/<br>
package main<br>
import "fmt"<br>
func main() {<br>
    fmt.Printf("Hello, world; or Καλημ?ρα κ?σμε; or こんにちは 世界\n");<br>
}</code></pre>
$ 8g helloworld.go<br>
  (→ helloworld.8 が作成される)<br>
$ 8l helloworld.8<br>
  (→ 8.out が作られる)<br>
$ ./8.out<br>
Hello, world; or Καλημ?ρα κ?σμε; or こんにちは 世界
/** *<br>
  Hello, world<br>
**/<br>
package main<br>
import "fmt"<br>
func main() {<br>
    fmt.Printf("Hello, world; or Καλημ?ρα κ?σμε; or こんにちは 世界\n");<br>
}
  Hello, world
**/
package main
import "fmt"
func main() {
    fmt.Printf("Hello, world; or Καλημ?ρα κ?σμε; or こんにちは 世界\n");
}
$ 8g helloworld.go
  (→ helloworld.8 が作成される)
$ 8l helloworld.8
  (→ 8.out が作られる)
$ ./8.out
Hello, world; or Καλημ?ρα κ?σμε; or こんにちは 世界

取り敢えず動いたところで今日はもう寝ることにしよう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は 必須項目です。

管理者が承認次第、表示されます。

*