「Go」の版間の差分
(→インストール: 同期) |
細 (→インストールのテスト: 同期) |
||
| 36行目: | 36行目: | ||
}} |
}} |
||
| − | 標準の ''gc'' コンパイラでコンパイル ({{ic|1=go build -compiler=gc |
+ | 標準の ''gc'' コンパイラでコンパイル ({{ic|1=go build -compiler=gc hello.go}} と同じ): |
| − | $ go build |
+ | $ go build hello.go |
| − | ''gccgo'' でコンパイル ({{ic|1=go build -compiler=gccgo |
+ | ''gccgo'' でコンパイル ({{ic|1=go build -compiler=gccgo hello.go}} と同じ): |
| − | $ gccgo |
+ | $ gccgo hello.go -o hello |
=== $GOPATH === |
=== $GOPATH === |
||
2016年11月27日 (日) 18:31時点における版
Go は C 言語に由来する構文を持つ静的型付言語です。ガベージコレクションによるメモリ管理、型安全性、動的型付けの機能、可変長配列やキーバリューマップなどの型、膨大な標準ライブラリなどが追加されています。
目次
インストール
今日 Go のコンパイラは2つ存在しており、どちらも公式リポジトリからインストールできます:
- gccgo: gcc-go でインストールできるコンパイラコレクションに含まれている gcc のフロントエンド
- goroutine がフルフローになる
- バイナリのサイズが小さい(dynamic linking)
インストールのテスト
Go が正しくインストールされたかは以下のような小さなプログラムをビルドして確認できます:
hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello, Arch!")
}
go ツールを使って実行:
$ go run hello.go
Hello, Arch!
標準の gc コンパイラでコンパイル (go build -compiler=gc hello.go と同じ):
$ go build hello.go
gccgo でコンパイル (go build -compiler=gccgo hello.go と同じ):
$ gccgo hello.go -o hello
$GOPATH
import ステートメントなどで使用される、Go の依存パッケージは、$GOPATH 変数、そして $GOROOT (go のインストールディレクトリ、デフォルトでは /usr/lib/go) で検索されます。基本の $GOROOT からだけでなく、外部の依存パッケージを使う場合は、~/.bash_profile (もしくはそれに類する設定ファイル) にワークスペースを指定する必要があります:
export GOPATH=~/go
ワークスペースを作成:
$ mkdir -p ~/go/{bin,src}
プロジェクトのソースの保存には src ディレクトリが、実行可能ファイルには bin が使われます。
また、bin ディレクトリのパスを $PATH 環境変数に追加することで (Go 言語で書かれた) インストールしたプログラムを (ls などと同じように) どこでも実行できるようになります:
export PATH="$PATH:$GOPATH/bin"
必要な実行可能ファイルが実行できるように $PATH に bin ディレクトリも追加します。
詳細は go help gopath を実行してください。
他のプラットフォームのクロスコンパイルを有効にする
公式パッケージは Linux の amd64, i386, arm アーキテクチャしかサポートしていません。Darwin, FreeBSD, MS Windows などのクロスコンパイルをサポートするには、以下のコマンドを実行:
You can not build /usr/lib/go/src of itself, ie if you set $GOROOT_BOOTSTRAP to /usr/lib/go you will get a warning like this.
$ cd /usr/lib/go/src $ GOROOT_BOOTSTRAP=/usr/lib/go GOOS=darwin GOARCH=amd64 ./make.bash --no-clean ##### Building Go bootstrap tool. cmd/dist ERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOT Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
To get around this, grab a source copy of Go from https://golang.org/.
Build your downloaded Go with your system GO.
$ cd ~/downloads/go/src $ GOROOT_BOOTSTRAP=/usr/lib/go GOOS=linux GOARCH=amd64 ./make.bash --no-clean
You can now build your system Go using the downloaded Go as bootstrap with this command.
$ cd /usr/lib/go/src; for os in darwin freebsd windows; do for arch in amd64 386; do sudo GOROOT_BOOTSTRAP="$HOME/downloads/go" GOOS=$os GOARCH=$arch ./make.bash --no-clean; done; done
詳細は FS#30287 を参照。
トラブルシューティング
Jetbrains Goプラグイン
もしJetbrainsのIDEを使用していてGoプラグインがGo SDK のパスを見つけられない場合、互換性のないパッケージを使用している可能性があります。gcc-goパッケージを削除し、goパッケージで置き換えてください。GOPATHが設定されている場合にはIDEは/usr/lib/goでGo SDKを見つけられます。