放置していた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
疑問点
外部モジュールを利用する場合。とくにネイティブバイナリを含むようなものをクロスコンパイルする場合のドキュメントがあまり存在していない気がする。
当然各環境のネイティブバイナリは存在するものとして、どうやって指定すればいいのだろう? それともあまり考えずに出来るんだろうか。
〆
ということであまり内容はありませんがのんびりいじってゆくつもり。