LoginSignup
0
0

More than 3 years have passed since last update.

Goでクロスコンパイル

Last updated at Posted at 2019-07-14

放置していたGolangに再度着手

Javaが不安な状態なこと、Pythonは実行環境を整えてもらわないと動かしてもらえないという二点からGolangが再浮上してきました。

環境

go version go1.12.5 linux/arm

クロスコンパイル

あちこちで触れられていることなので簡単にスクリプトだけ。

build.sh
#!/bin/sh

if [ $# != 1 ]; then
    echo "usage: $0 [binary name]"
    exit 0
fi

rm -rf ./bin

mkdir ./bin
mkdir ./bin/linux-arm
mkdir ./bin/linux64
mkdir ./bin/linux386
mkdir ./bin/windows386
mkdir ./bin/windows64
mkdir ./bin/darwin386
mkdir ./bin/darwin64



echo linux-arm
GOOS=linux GOARCH=arm go build -o ./bin/linux-arm/$1

echo linux64
GOOS=linux GOARCH=amd64 go build -o ./bin/linux64/$1

echo linux386
GOOS=linux GOARCH=386 go build -o ./bin/linux386/$1

echo windows386
GOOS=windows GOARCH=386 go build -o ./bin/windows386/$1

echo windows64
GOOS=windows GOARCH=amd64 go build -o ./bin/windows64/$1

echo darwin386
GOOS=darwin GOARCH=386 go build -o ./bin/darwin386/$1

echo darwin64
GOOS=darwin GOARCH=amd64 go build -o ./bin/darwin64/$1

疑問点

外部モジュールを利用する場合。とくにネイティブバイナリを含むようなものをクロスコンパイルする場合のドキュメントがあまり存在していない気がする。
当然各環境のネイティブバイナリは存在するものとして、どうやって指定すればいいのだろう? それともあまり考えずに出来るんだろうか。

ということであまり内容はありませんがのんびりいじってゆくつもり。

0
0
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
0
0