読み方 : クロスかいはつ
クロス開発【cross development】
クロス開発とは?

ターゲット環境となる機器の多くは、処理能力やメモリ、記憶容量が限られており、キーボードやディスプレイを備えていない場合もある。炊飯器や洗濯機の制御装置、自動車のシステム、IoT機器などがその典型で、その機器を使ってプログラムを記述・修正することは現実的でない。そのため、高性能なパソコンなどに開発環境を構築し、作業を進める。
クロス開発では、ソースコードの編集からコンパイル(プログラムを機器が実行できる形式に変換する作業)までをホスト環境で行う。このとき使うのが「クロスコンパイラ」で、ホストとは異なるCPU向けの実行ファイルを生成することができる。パソコンに多いx86系CPUと、組み込み機器やスマートフォンに多いARM系CPUでは機械語の命令体系が根本的に異なるため、通常のコンパイラでは対応できない。必要に応じてクロスアセンブラなど関連ツールが併用されることがある。
完成したプログラムは、通信ケーブルやネットワーク、メモリカードなどを経由してターゲット機器へ転送され、実機上で動作確認とデバッグが行われる。画面や入力装置を持たない機器では、JTAGなどの専用デバッグインターフェースやシリアル通信を利用して内部の状態を確認する。エミュレータやシミュレータを使えば、実機なしでもある程度の動作検証が可能である。
ホスト環境で開発を進めることで、豊富な開発支援ツールを活用でき、コンパイルや編集の速度も確保しやすい。一方で、ホストとターゲットではCPUの命令体系やメモリ構成、オペレーティングシステム(OS)の仕様が異なるため、ホスト上では正しいように見えても実機では不具合が生じることがある。実機での検証を繰り返しながら調整する作業が欠かせない。
(2026.5.11更新)