私は、Go(v1.5以降)にはクロスコンパイルオプションが組み込まれていることに非常に興味があります。 しかし、別のOSやアーキテクチャでどのようにコンパイルすることが可能ですか? これは、ターゲットマシンの言語とプラットフォームを知っている(おそらく同様に動作している)必要があることを意味します。コンパイラはどのようにして異なるOSやアーキテクチャにクロスコンパイルできますか?
3
A
答えて
4
これは、ターゲットマシンの言語とプラットフォームを知っている(おそらく同様に動作している)必要があることを意味します。
はい、移動コンパイラは、ターゲット・オペレーティング・システムがどのように動作するかを知る必要があり、それはが行くコンパイラがコンパイル済みの実行可能なバイナリを実行しないように、ターゲットOSのようなに動作する必要はありません。それはちょうどを生成する必要があります。
Goツールは、オペレーティングシステム、OS、アーキテクチャの詳細(命令セット、ワードサイズ、エンディアン、アライメント、利用可能なレジスタなど)のバイナリ形式であることを知る必要があります。more info on this。この知識はGoツールに組み込まれています。
関連する問題
- 1. SConsキャッシュは、さまざまなOSおよびCPUアーキテクチャでどのように動作しますか?
- 2. どのようにクロスコンパイルしてScala.JSをコンパイルしますか
- 3. CMakeの2つの異なるコンパイラでのクロスコンパイルが、同じソース
- 4. gRPCを使用したgolangプロトコルバッファをクロスコンパイルして、異なるOSプラットフォームで使用できますか?
- 5. linuxのcode :: blocksコンパイラで、 '-lrt'や '-lboost_thread'のようなコンパイルフラグをどのように追加できますか?
- 6. MIPSアーキテクチャのクロスコンパイル
- 7. gccは異なるCPUでクロスコンパイルできますか?
- 8. iPhone OSでのマルチスレッドはどのように機能しますか?どうやって使うの?
- 9. 異なるOSバージョンのコンパイラ出力
- 10. ホストコンピュータとは異なるアーキテクチャのJREをBazelに含めるにはどうすればできますか?
- 11. コンパイラは異なるポインタをインクリメントする方法をどのように知っていますか?
- 12. Gitブランチ名はOSによって異なりますか?
- 13. イテレータを認識するコンパイラはどのように実装できますか?
- 14. 同じコンパイラが異なるOSで異なる動作を作成する
- 15. ARMアーキテクチャ用のクロスコンパイルportaudio
- 16. WP7(os 7.1)でSqliteやsqlCeのようなDBを使用できますか?
- 17. マシンコードがOSの種類によって異なるのはなぜですか?
- 18. コンパイラ+クラス間参照:javacはC++コンパイラがどのようにゆっくりやりますか?
- 19. OS - OSはどのようにデバイスデータを各プロセスにマップしますか
- 20. コンパイラはどのようにメモリフットプリントを管理しますか?
- 21. オンラインJavaコンパイラはどのように機能しますか?
- 22. コンパイラはどのようにスコープを解決しますか?
- 23. Interopの問題 - 異なるOSアーキテクチャのための異なるC#構造
- 24. Android搭載端末のアーキテクチャは国によって異なりますか?
- 25. さまざまなAndroidデバイス/ OSバージョンでFABが異なるように見えるのはなぜですか?
- 26. どのようにgccがサポートするアーキテクチャを決定できますか?
- 27. 異なるOS JREは異なっていますか?
- 28. Travis-CIでは、プルリクエストに対してどのように異なるマトリックスを使用できますか?
- 29. TYPO3のアクションコントローラにはどうやって異なる翻訳ができますか?
- 30. 実際にはどのようなラスタライザですか? Linux OSや別のライブラリのフリータイプの一部ですか?
[追加情報](https://www.youtube.com/watch?v=KINIAgRpkDA) –
ありがとうございました!リンクに関する情報は非常に多く説明しています! –