クロスコンパイラ

更新日:

用語解説

クロスコンパイラは、コンパイラ自身が動作するホスト環境とは異なるCPUアーキテクチャやOSなどのターゲット環境で実行する目的コードを生成するコンパイラです。組込み開発で広く使われます。

■ 試験で押さえるポイント

  • ホストは開発作業を行う機械、ターゲットは生成コードを実行する機械です。両者のCPU、OS、ABI、バイト順序などが異なり得ます。

  • 対象向けアセンブラ、リンカ、標準ライブラリ、ヘッダ、sysrootなどと組み合わせてクロスツールチェーンを構成します。

  • 生成物はターゲット実機又はエミュレーターへ転送してテストします。ホスト上でそのまま実行できないことは、コンパイル失敗を意味しません。

  • 同じ環境向けコードを作るネイティブコンパイラとの違いは出力先です。複数言語を翻訳できるか、実行時に翻訳するかとは別の分類です。

■ 選択肢での判断ポイント

「開発機では動くが、生成コードは別機種・別CPUで動く」を選びます。別機種の動作を開発機上で再現するのはエミュレーターです。

例: x86-64 Linux上のコンパイラでARMマイコン用機械語を生成し、ARM用リンカで結合して基板へ書き込みます。コンパイラの実行場所はx86、生成物の実行場所はARMです。

同じ分野の用語