クロスコンパイルの用語集(7語)
クロスコンパイルに関する Linux 用語を、読み・意味・補足つきでまとめました。
ABIえーびーあい
関数呼び出し規約やデータ配置の約束事(Application Binary Interface)。
ホストとターゲットでABIがずれると、コンパイルが通っても実行時に正しく動かない。
sysrootしすルート
ターゲット用のヘッダとライブラリを集めたディレクトリツリー。
gccに--sysrootで渡すと、その中から#includeやライブラリを探す。ホストの/usrを混ぜると不整合の原因。
エンディアンえんでぃあん
メモリ上のバイト並び順。リトル/ビッグの2種。
アーキにより異なり、fileコマンドの出力(LSB/MSB)で確認できる。
クロスコンパイルくろすこんぱいる
動かす機械(ターゲット)とは別の機械(ホスト)上で実行ファイルを作ること。
組込みでは非力なターゲット上でビルドせず、高性能なPCでターゲット向けバイナリを生成して転送する。
ツールチェーンつーるちぇーん
コンパイラ・アセンブラ・リンカ・ライブラリなどビルドに必要な道具一式。
クロス用はgcc単体でなくbinutilsやglibc/muslを含む。crosstool-NGやYocto/Buildrootで構築する。
トリプレットとりぷれっと
ターゲットを表す識別子。例 arm-linux-gnueabihf。
おおむね「アーキ-ベンダ-OS-ABI」。クロスツールの実行ファイル名の接頭辞になる。
ホストとターゲットほすととたーげっと
ビルドを行う機械がホスト、成果物を動かす機械がターゲット。
両者のCPUアーキテクチャが異なるときがクロスコンパイル。configureでは--build/--hostで区別する。