IT資格用語解説基本情報技術者試験・言語処理ツールの種類と特徴
クロスコンパイラ
更新日:
用語解説
クロスコンパイラは、コンパイラ自身が動作するホスト環境とは異なるCPUアーキテクチャやOSなどのターゲット環境で実行する目的コードを生成するコンパイラです。組込み開発で広く使われます。
■ 試験で押さえるポイント
ホストは開発作業を行う機械、ターゲットは生成コードを実行する機械です。両者のCPU、OS、ABI、バイト順序などが異なり得ます。
対象向けアセンブラ、リンカ、標準ライブラリ、ヘッダ、sysrootなどと組み合わせてクロスツールチェーンを構成します。
生成物はターゲット実機又はエミュレーターへ転送してテストします。ホスト上でそのまま実行できないことは、コンパイル失敗を意味しません。
同じ環境向けコードを作るネイティブコンパイラとの違いは出力先です。複数言語を翻訳できるか、実行時に翻訳するかとは別の分類です。
■ 選択肢での判断ポイント
「開発機では動くが、生成コードは別機種・別CPUで動く」を選びます。別機種の動作を開発機上で再現するのはエミュレーターです。
例: x86-64 Linux上のコンパイラでARMマイコン用機械語を生成し、ARM用リンカで結合して基板へ書き込みます。コンパイラの実行場所はx86、生成物の実行場所はARMです。