Mulitarch時代のクロスコンパイル

Debian 7.0 から multiarch への移行が行われる。 これにより、Debianでの今までのクロスコンパイルとは異なる方法になる。 ホストをamd64、ターゲットを armhf をした場合。

まず、multiarchするアーキテクチャを追加する。

 # dpkg ­--­add-­architecture armhf

追加できたか確認する

 # dpkg ­­--print-foreign-architectures
 armhf

aptline に以下の行を追加する。このaptlineでは、multiarchに対応したクロスコンパイラが提供されている。

 deb http://emdebian.org/~thibg/repo/ sid main

apt-get updateを実行し、リポジトリ情報を取得する。 # apt-get update

クロスコンパイラをインストールする。armhf バイナリをダウンロードしていることがわかる。

 # apt-get install gcc-4.7-arm-linux-gnueabihf
 <snip>
 取得:12 http://ftp.jp.debian.org/debian/ unstable/main libgcc1 amd64 1:4.7.2-2 [43.1 kB]     
 取得:13 http://ftp.jp.debian.org/debian/ unstable/main gcc-4.7-base armhf 4.7.2-2 [143 kB]                                                                  
 取得:14 http://ftp.jp.debian.org/debian/ unstable/main libc6 armhf 2.13-35 [4,005 kB]                                                                       
 取得:15 http://emdebian.org/~thibg/repo/ sid/main gcc-4.7-arm-linux-gnueabihf-base amd64 4.7.1-7 [140 kB]                                                   
 取得:16 http://emdebian.org/~thibg/repo/ sid/main cpp-4.7-arm-linux-gnueabihf amd64 4.7.1-7 [5,133 kB]