スクリプトは、、の./configure
3 つのオプションを受け入れます--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.