「Go」の版間の差分
(→参照: 項目の追加) |
(スタイル修正) |
||
8行目: | 8行目: | ||
今日 Go のコンパイラは2つ存在しており、どちらも[[公式リポジトリ]]から[[インストール]]できます: |
今日 Go のコンパイラは2つ存在しており、どちらも[[公式リポジトリ]]から[[インストール]]できます: |
||
− | * '''go''': {{pkg|go}} で[[インストール]]できるコンパイルツール |
+ | * '''go''': {{pkg|go}} で[[インストール]]できるコンパイルツールのインターフェイス |
** コンパイルが高速 |
** コンパイルが高速 |
||
− | ** 公式 |
+ | ** 公式ツール (go get や go doc など) |
** クロスコンパイル |
** クロスコンパイル |
||
* '''gccgo''': {{pkg|gcc-go}} で[[インストール]]できるコンパイラコレクションに含まれている ''gcc'' のフロントエンド |
* '''gccgo''': {{pkg|gcc-go}} で[[インストール]]できるコンパイラコレクションに含まれている ''gcc'' のフロントエンド |
||
** goroutine がフルフローになる |
** goroutine がフルフローになる |
||
− | ** バイナリのサイズが小さい |
+ | ** バイナリのサイズが小さい (動的リンク) |
=== インストールのテスト === |
=== インストールのテスト === |
||
68行目: | 68行目: | ||
=== 他のプラットフォームのクロスコンパイルを有効にする === |
=== 他のプラットフォームのクロスコンパイルを有効にする === |
||
− | 公式パッケージは Linux の amd64, i386, arm アーキテクチャしかサポートしていません。Darwin, FreeBSD, MS Windows などのクロスコンパイルをサポートするには、 |
+ | 公式パッケージは Linux の amd64, i386, arm アーキテクチャしかサポートしていません。Darwin, FreeBSD, MS Windows などのクロスコンパイルをサポートするには、下の手順に従ってください。 |
− | {{ic|$GOROOT_BOOTSTRAP}}を{{ic|/usr/lib/go}}に設定すると{{ic|/usr/lib/go/src}}をビルドできません。以下のような警告が出力されます。 |
+ | {{ic|$GOROOT_BOOTSTRAP}} を {{ic|/usr/lib/go}} に設定すると {{ic|/usr/lib/go/src}} をビルドできません。以下のような警告が出力されます。 |
$ cd /usr/lib/go/src |
$ cd /usr/lib/go/src |
||
79行目: | 79行目: | ||
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. |
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. |
||
− | この問題を回避するには、https://golang.org/からGoのソースを入手してください。 |
+ | この問題を回避するには、https://golang.org/ から Go のソースを入手してください。 |
− | {{Note|以下のコマンドは、{{ic|~/downloads/go}}にGo |
+ | {{Note|以下のコマンドでは、{{ic|~/downloads/go}} に Go をダウンロードして解凍したものとします。}} |
− | ダウンロードしたGoをビルド |
+ | ダウンロードした Go をビルド: |
$ cd ~/downloads/go/src |
$ cd ~/downloads/go/src |
||
$ GOROOT_BOOTSTRAP=/usr/lib/go GOOS=linux GOARCH=amd64 ./make.bash --no-clean |
$ GOROOT_BOOTSTRAP=/usr/lib/go GOOS=linux GOARCH=amd64 ./make.bash --no-clean |
||
− | これでダウンロードした |
+ | これでダウンロードした Go を使用して Go をビルドできるはずです。以下のコマンドでビルドしてください: |
$ 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 |
$ 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 |
||
98行目: | 98行目: | ||
== トラブルシューティング == |
== トラブルシューティング == |
||
− | === Jetbrains Goプラグイン === |
+ | === Jetbrains の Go プラグイン === |
− | もしJetbrains |
+ | もし Jetbrains IDE を使用していて Go プラグインが Go SDK のパスを見つけられない場合、互換性のないパッケージを使用している可能性があります。{{ic|gcc-go}} パッケージを削除し、{{ic|go}} パッケージで置き換えてください。GOPATH が設定されている場合、IDE は {{ic|/usr/lib/go}} に存在する Go SDK を認識します。 |
== 参照 == |
== 参照 == |
2016年11月28日 (月) 19:32時点における版
Go は C 言語に由来する構文を持つ静的型付言語です。ガベージコレクションによるメモリ管理、型安全性、動的型付けの機能、可変長配列やキーバリューマップなどの型、膨大な標準ライブラリなどが追加されています。
目次
インストール
今日 Go のコンパイラは2つ存在しており、どちらも公式リポジトリからインストールできます:
インストールのテスト
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 などのクロスコンパイルをサポートするには、下の手順に従ってください。
$GOROOT_BOOTSTRAP
を /usr/lib/go
に設定すると /usr/lib/go/src
をビルドできません。以下のような警告が出力されます。
$ 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.
この問題を回避するには、https://golang.org/ から Go のソースを入手してください。
ダウンロードした Go をビルド:
$ cd ~/downloads/go/src $ GOROOT_BOOTSTRAP=/usr/lib/go GOOS=linux GOARCH=amd64 ./make.bash --no-clean
これでダウンロードした Go を使用して Go をビルドできるはずです。以下のコマンドでビルドしてください:
$ 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 を認識します。