2016-11-11 9 views
3

私は、Go(v1.5以降)にはクロスコンパイルオプションが組み込まれていることに非常に興味があります。 しかし、別のOSやアーキテクチャでどのようにコンパイルすることが可能ですか? これは、ターゲットマシンの言語とプラットフォームを知っている(おそらく同様に動作している)必要があることを意味します。コンパイラはどのようにして異なるOSやアーキテクチャにクロスコンパイルできますか?

答えて

4

これは、ターゲットマシンの言語とプラットフォームを知っている(おそらく同様に動作している)必要があることを意味します。

はい、移動コンパイラは、ターゲット・オペレーティング・システムがどのように動作するかを知る必要があり、それはが行くコンパイラコンパイル済みの実行可能なバイナリを実行しないように、ターゲットOSのようなに動作する必要はありません。それはちょうどを生成する必要があります。

Goツールは、オペレーティングシステム、OS、アーキテクチャの詳細(命令セット、ワードサイズ、エンディアン、アライメント、利用可能なレジスタなど)のバイナリ形式であることを知る必要があります。more info on this。この知識はGoツールに組み込まれています。

+1

[追加情報](https://www.youtube.com/watch?v=KINIAgRpkDA) –

+0

ありがとうございました!リンクに関する情報は非常に多く説明しています! –

関連する問題