Go言語
概要
- プログラミング言語の一つ
- Google により開発された
- クロスコンパイル環境を手に入れやすい
- ソースがきっちり定義されている
- 使わない変数などがあると、コンパイル時にエラーとなる
- 個人的な感想
- 変数などの定義が独特な気がする
- 難易度: シェルスクリプト < awk = Perl < Python < Go言語 < C
- デバッグのためにデバッグ用変数やprint文を散りばめたりするやり方が取りづらい (使わない変数があるとコンパイル時にエラーになるため)
インストール方法
パッケージマネージャでインストールする方法
- とても簡単にインストールする方法
- クロスコンパイルに必要な u.h がなぜかない
- 最新版が手に入りにくい
- インストール
$ sudo apt-get install golang
gvmでインストールする方法
インストール方法
- とても簡単にインストールする方法
- 最新版が手に入りやすい
- 必要なパッケージインストール
$ sudo apt-get install curl git mercurial make binutils bison gcc build-essential
- gvm のインストール
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
- シェルの設定ファイルの編集(以下を .bashrc や .zshrc などに追記)
if [ -s ${HOME}/.gvm/scripts/gvm ]; then source ${HOME}/.gvm/scripts/gvm fi
- go 言語のインストール
$ gvm install go1.4.2 $ gvm use go1.4.2 $ gvm install go1.5
- go1.5 以降のインストールには go1.4.x が必要
- go1.4.x インストール時にコンパイルエラー (
'unknown relocation type 42; compiled without -fpic?
') になる場合は、環境変数 ('export CGO_ENABLED=0
') を宣言しておくといいようだ。
- クロスコンパイラ環境の整備
$ gvm use go1.4.2 $ gvm cross OS ARCH
- OS には今後クロスコンパイルするであろうOSを入力する (windows, linux, darwin, freebsd, netbsd, openbsd)
- ARCH には今後クロスコンパイルするであろうアーキテクチャを入力する (386, amd64, arm)
- 一度実行しておけば、go1.5 以降の Go 言語に切り替えてもクロスコンパイルができる
gvm コマンド
- 使用する Go 言語のバージョンの切り替え
$ gvm use GO
- GO には go1.4 や go1.5 などのバージョンを入力する
- 詳しくはインストール可能なバージョン一覧を参照
- インストール可能なバージョン一覧
$ gvm listall
- インストール済みのバージョン一覧
$ gvm list
- デフォルトで使うバージョンの指定
$ gvm use GO --default
- GO には go1.4 や go1.5 などのバージョンを入力する
- 詳しくはインストール可能なバージョン一覧を参照
パッケージをダウンロードしてインストールする方法
- 何から何まで自分でやる方法
- http://golang.org/dl からバイナリダウンロード
- 1.5 以降のバージョンは 1.4 がないと動かない
- パッケージ展開
$ sudo tar -C /usr/local -xzf go1.4.x.linux-amd64.tar.gz
- go1.4.x.linux-amd64.tar.gz はダウンロードしたファイルに合わせて変更する
- インストール
$ cd /usr/local/go/src $ sudo ./all.bash
- パスの追加 (.bashrc や .zshrc に追記)
export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin
- 【go1.5以降をインストールする場合】 go1.4 を変更
$ cd /usr/local $ sudo mv /usr/local/go /usr/local/go1.4
- 【go1.5以降をインストールする場合】go1.5 のパッケージを展開
$ sudo tar -C /usr/local -xzf go1.5.x.linux-amd64.tar.gz
- go1.5.x.linux-amd64.tar.gz はダウンロードしたファイルに合わせて変更する
- 【go1.5以降をインストールする場合】 インストール
$ export GOROOT_BOOTSTRAP=/usr/loca/go1.4 $ cd /usr/local/go/src $ sudo -E ./all.bash
- 【go1.5以降をインストールする場合】 パス追加
export GOROOT_BOOTSTRAP=/usr/loca/go1.4
- 【go1.5以降をインストールする場合】 バージョン確認
$ go version
- インストールしたバージョンが表示されたら OK
使用方法
- コンパイルせずに実行
$ go run SOURCE.go
- コンパイル
$ go build SOURCE.go
- .go が取れた実行形式のバイナリが生成される
- クロスコンパイル
$ GOOS=OS名 GOARCH=アーキテクチャ go build SOURCE.go
- 使えるOS: windows, linux, darwin, freebsd, netbsd, openbsd
- 使えるアーキテクチャ: 386 (32ビット), amd64 (64ビット), arm (組み込み)
- 例: 64ビットWindowsで実行できるバイナリをコンパイル
$ GOOS=windows GOARCH=amd64 go build SOURCE.go
- 実行 (SOURCE.go をコンパイルした場合)
$ ./SOURCE
Go言語の情報を集めるには
- 「Go言語」「golang」でぐぐる