
Ubuntu日本語フォーラム
ログインしていません。
ターゲット ARM Ubuntu12.04
親機 i386 Ubuntu 13.10で、クロスコンパイル
ARMボード上で、libjpeg62-devを使いたくてDebianのリポジトリからlibjpeg62-dev_6b1-3_armhf.debをダウンロードし
(Ubuntuのリポジトリでは見当たらなかったので)
# dpkg-cross -b -a armhf libjpeg62-dev_6b1-3_armhf.deb すると
dpkg-cross: Skipping Multi-Arch package 'libjpeg62-dev_6b1-3_armhf.deb'.
とのメッセージで終わってしまいます。
ネット上でいろいろ調べると、Ubuntu12.04からMultiarchがサポートされているとか
そこで、
# dpkg --add-architecture armhf
# dpkg --print-foreign-architectures
armhf
として
Synapticsで、libjpeg62-devをインストールしてみたんですが、
./usr/lib/i386-linux-gnu/libjpeg.so.62はインストールされていますが
./usr/lib/arm-linux-gnu/ディレクトリも作られていません。
./usr/arm-linux-gnueabiと ./usr/arm-linux-gnueabihfが gcc-arm-linuxgnueabihfをインストールした時に作られましたが、
この中の/lib内にもlibjpeg.so.62はありませんでした。
以前なら、dpkg-crossで展開先を/usr/arm-linux-gnueagihfの書き直した _all.debが作成されたと思うんですが。
Mulitarchになってからのクロスコンパイルはどのようにすればよいのでしょうか?
よろしくお願いいたします。
オフライン
私も一月ばかり挑戦しましたが、
あんまりうまく行かなかったので、やめておいたほうがいいです。
コンパイルはラズベリーパイのエミュレータ等のARMのDebianで行うのが一番早いです。
あと、ARMにはarmelとarmhfがあります。
そのボードがarmhfに対応していないようなかなり古いものでなければいいのですが。
ちなみに私はラズベリーパイの実機でやっています。
Mathematicaもタダで使えて、まあ、色々できて楽しいです。
オフライン
S_T_Mさま
レス、ありがとうございます。
その後、Debian 7でテストしたところ、問題なくインストールできました。
Ubuntuのリポジトリは、まだ整備が不十分なようですね。
最初に書いた手順で
/usr/lib/arm-linux-gnueabihf/libjpeg62が作成されました。
あとは、qemu-user-staticをインストール後、armのrootfsにchrootしてコンパイルするのが、今後の
クロス開発の標準手順になるんでしょうかね
オフライン
追記
Debian 7 でMultiarchが解決できるように書きましたが、結果的にはダメでした。
ライブラリなど、うまくインストールされるものもありましたが、今現在は肝心のbuild-essential:armhfが依存関係が壊れた状態になってしまいます。
Multiarchが採用されたおかげで、従来のdkpg-crossが使えないパッケージもあるので
dpkg -x して手動で配置するしかないようです。
Multarchの構想はすばらしいのでしょうが、もうしばらく調整が必要なようですね
オフライン