クロスコンパイラ【cross compiler】クロスコンパイラー

概要

クロスコンパイラとは、プログラムソースコードをもとに、開発環境とは異なる機種やオペレーティングシステム(OS)向けの実行可能プログラムオブジェクトコード)を生成する変換プログラムのこと。開発環境と実行環境が異なるソフトウェア開発(クロス開発)で用いられる。
クロスコンパイラのイメージ画像

一般的なソフトウェア開発では、プログラミング言語で書かれたソースコードを、コンピュータで実行可能な機械語プログラムであるオブジェクトコードに変換して実行可能形式のプログラムを生成する。その際に用いられる変換プログラムを「コンパイラ」(compiler)という。

パソコン向けのプログラムパソコンで開発する場合など、開発環境と実行環境が一致している場合は開発環境向けのコンパイラを使えば良いが、開発環境と実行環境が一致しない場合は、実行環境向けのプログラムを生成する特殊なコンパイラを用いる。これをクロスコンパイラという。

クロスコンパイラが生成した実行プログラムは開発環境上で直接実行することはできないため、実行環境となるハードウェアに転送して実行したり、開発環境上で実行環境を模したエミュレータ仮想マシンVM)を用意して、その上で実行する。

クロスコンパイラはターゲットとなる実行環境がソフトウェア開発に適していない場合や、ハードウェア開発が完了する前にソフトウェア開発を開始したい場合などに用いられる。例えば、スマートフォンタブレット端末、家庭用ゲーム機などで動作するソフトウェアをパソコン上で開発する場合などである。

(2023.8.22更新)

他の用語辞典による「クロスコンパイラ」の解説 (外部サイト)

資格試験などの「クロスコンパイラ」の出題履歴

▼ 基本情報技術者試験
令1修6 問19】 あるコンピュータ上で,異なる命令形式のコンピュータで実行できる目的プログラムを生成する言語処理プログラムはどれか。
平30修1 問19】 あるコンピュータ上で,異なる命令形式のコンピュータで実行できる目的プログラムを生成する言語処理プログラムはどれか。
平26修1 問23】 あるコンピュータ上で,異なる命令形式のコンピュータで実行できる目的プログラムを生成する言語処理プログラムはどれか。