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