1. ホーム
  2. go

[解決済み] OSXでGoをクロスコンパイルする?

2022-04-28 17:28:31

質問

OSX上でGoアプリをクロスコンパイルして、WindowsとLinux用のバイナリをビルドしようとしています。私はネット上で見つけることができるすべてのものを読みました。私が見つけた最も近い例は、(go-nutsメーリングリスト上の多くの未完成の議論を除いて)上で公開されています。

http://solovyov.net/en/2012/03/09/cross-compiling-go/

が、私のインストールでは動作しません。私は1.0.2を使用しています。1.0.2はかなり新しいので、上記の例はすべてこのバージョンには当てはまらないように見えます。

試しに ./make.bash --no-clean ENVars を 386/windows に設定すると、go がビルドされますが、私のインストールでは darwin/amd64 ENVに設定されている、別のコンパイラをビルドするような内容は完全に無視されます。

どうすればいいのか(もし可能なら)、アドバイスがあれば教えてください。

解決方法は?

Go 1.5 では、クロス コンパイル プロセスが改善され、ビルトインされるようになったようです。いいえ。 ./make.bash -または brew -が必要です。処理内容を説明します。 こちら が、私のようなTLDR-erのために言うと、単に GOOSGOARCH 環境変数を設定し、go buildを実行します。

私のようなコピー魔は、*nixシステムを使っている場合、このようにします。

env GOOS=linux GOARCH=arm go build -v github.com/path/to/your/app

を覚えたくらいですからね。 env を使えば、そのコマンドのためだけに環境変数を設定することができます。