LoginSignup
53
48

More than 5 years have passed since last update.

go buildとクロスコンパイル

Last updated at Posted at 2017-11-15

ファイルをbuildする

$ go build main.go(buildするファイル名)

ファイルはカレントディレクトリ配下に作成される。

クロスコンパイルを使う

作るバイナリを決定する

作るバイナリの種類を決めます。buildしたファイルを使いたい環境でgo envを実行。
どんな環境なのかを確認します。

$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="自分のGOPATH"
GORACE=""
GOROOT="/usr/local/go"
...
..
.

この場合は、linuxなので、クロスコンパイルでlinux向けのバイナリを作成します。

GOARCH="amd64"
GOOS="linux"

上記の記述をコマンドで使用します。

$ env GOOS=linux GOARCH=amd64 go build main.gobuildするファイル名
//↑はfishの場合
//bashの人はenvいらない。

上記を実行すると、linux向けのファイルが作成される。

buildされたファイルを実行する

./main

上記コマンドでbuildされたファイルを実行可能。
環境変数を付与して使いたい場合には以下の通り。

env GO_ENV=○○ ./main
//fish

buildされるファイル名を決める

デフォルトでは、buildするとファイル名は元のファイル名を元に決められます。
build後のファイル名を決めたい場合には、-oをつけます。

env go build -o test main.go
//fish

実行すると、testという名前でファイルが作られます。
さっきと同じようにすれば、実行可能。

.envを参照している場合

コードの中で.envを参照している場合は、環境を変えて実行するとエラーが起きました。
この場合は、その環境でも同じように.envを置くとうまくいきます。

以下のような記事もありますね。
https://qiita.com/kazuph/items/491b87a8f07740c78c8e

53
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
48