Googleから新しいプログラミング言語が登場したようです。
Googleの新しいプログラミング言語Go == Python(開発が速い) + C++(実行速度が速い)
公式マスコットのGordonの画がなんともゆる~い感じでいいです。とりあえずインストールガイドを読みながら、手元の開発マシン(Fedora 10)にインストールしてみました。
インストール
まずGo用の環境変数をいくつか設定する必要があります。
$ export GOOS=linux $ export GOARCH=386 $ export GOROOT=/usr/local/go $ export GOBIN=$GOROOT/bin $ export PATH=$GOBIN:$PATH
Goのインストール先($GOROOT)は/usr/local/goにしています。予めディレクトリを作っておきましょう。
$ mkdir -p $GOBIN
なお、インストール作業はroot以外のユーザーで行うことをお薦めします。コンパイラなんだからホームディレクトリ配下ではなく、/usr/local配下にインストールしようと思い、最初はrootでインストールを試みたのですが、rootでインストールすると最後のテストフェーズでエラーが発生してしまいます。
次にソースコードをダウンロードするのですが、そのためにはhgコマンドが必要になります。あいにくhgコマンドは入っていなかったので、yumでmercurialパッケージをダウンロード&インストール。
$ sudo yum install mercurial
続いてソースのダウンロード。
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
Goの開発環境をビルド&インストールします。
$ cd $GOROOT/src $ ./all.bash
これで完了。Goコンパイラである「8g」がインストールされていることを念のため確認。
$ which 8g /usr/local/go/bin/8g
Hello, world
プログラムの事始め。お約束の「Hello, world」プログラムを書いてみましょう。
package main import "fmt" func main() { fmg.Printf("Hello, world!\n"); }
上記のソースを「hello.go」という名前で保存します。
今はインストールの流れで$GOROOTなどの環境変数が設定されている状態ですが、コンパイル時にも同様に環境変数が設定されていなければなりません。~/.bashrcあたりで環境変数の設定を追加しておくのが得策でしょう。
それではコンパイル&実行してみましょう!
$ ls hello.go $ 8g hello.go $ ls hello.8 hello.go $ 8l hello.8 $ ls 8.out hello.8 hello.go $ ./8.out Hello, world!
8gがコンパイラ、8lがリンカです。実行ファイルが8.outとして生成されますが、これはgccがデフォルトでa.outを生成するのに似ていますね。リンカオプション-o <file>で出力ファイル名を指定できます。
$ 8l -o hello.8 $ ls hello hello.8 hello.go
Makefileを使う場合
最後にmakeコマンドを使ってビルドするためのMakefileの雛型を紹介します。
include $(GOROOT)/src/Make.$(GOARCH) TARG = hello GOFILES = hello.go include $(GOROOT)/src/Make.cmd
TARGには実行ファイル名を、GOFILESにはコンパイルするソースファイルを列挙していきます。Makefileとして保存してmakeコマンドを実行してみましょう。
$ ls hello.go Makefile $ make 8g -o _go_.8 hello.go 8l -o hello _go_.8
Goの公式サイトには充実したドキュメントが揃っていますね。C++プログラマの私にとって、Go For C++ Programmersのエントリは興味をそそられます(まだ読んでいませんが)。
最近のコメント