「./configure」オプションの「--build」、「--host」、「--target」の違いは何ですか? 質問する

「./configure」オプションの「--build」、「--host」、「--target」の違いは何ですか? 質問する

スクリプトは、、の./configure3 つのオプションを受け入れます--build。それらの役割がわかりません。それらの違いと意味は何ですか?--host--target

ベストアンサー1

前述の通りこのブログ投稿そして、GCC 構成条件は、--targetツールチェーンをコンパイルする場合にのみ適用されます。ライブラリやバイナリの通常のクロスコンパイルを行う場合は、

--build=the architecture of the build machine
--host=the architecture that you want the file to run on

しかし、あなたがツールチェーンを構築すると、状況はより複雑になります。以下は正しいと思います (ただし、クロスデバッガーを手動でコンパイルしたことはありません)。

次のようなものがあるとします:

  • すべてのコンパイルを実行するPowerPCビルドマシン
  • コードが実行されるMIPSプロセッサを搭載した複数の組み込みデバイス
  • 現場でこれらのデバイスをデバッグするために使用するx86ラップトップ

組み込みデバイス上で実行するためにデバッグサーバー(例:gdbserver)を設定して構築します。

./configure --build=powerpc --host=mips

これにより、組み込みデバイスに putty を接続し、「gdbserver :1234 a.out」を実行してデバッグを開始し、ポート 1234 でリッスンできるようになります。

次に、デバッグクライアント(gdbserverに接続して制御するクライアント)をビルドします。

./configure --build=powerpc --host=i686 --target=mips 

これを x86 ラップトップにコピーして、現場で「gdbclient embedded.device:1234」を実行し、a.out プログラムをデバッグできるようにします。

これはコンパイラにも当てはまります。コンパイラについては、上記のGCCリンクまたはこのセクションを参照してください。カナダクロスコンパイル。

Also note that, in practice, you might not see build, host or target specified because, according to this Autoconf manual page, "target defaults to host, host to build, and build to the result of config.guess."

In a word, build the code on --build, run it on --host with --target architecture environment.

おすすめ記事