クロス開発用ライブラリをインストールする方法

該当製品: Armadillo-500 FX Armadillo-500 Armadillo-440 Armadillo-300 Armadillo-9 Armadillo-240 Armadillo-230 Armadillo-220 Armadillo-210
| 最終更新: 2010/03/17

Atmark Distに含まれていないライブラリを使いたいときに役に立つ方法です。

Atmark Distにもいろいろなライブラリが入っていますが、オープンソースのライブラリ全てを入れるわけにはいきません。使いたいライブラリがAtmark Distに含まれていなくても、この方法さえ知っていれば、使えるライブラリがグンと増えます。

ソースファイルを取得して自分でコンパイルしても良いのですが、ArmadilloはDebianとバイナリ互換になっているので、DebianのARM用パッケージを使うと簡単です。バイナリパッケージをダウンロードし、開発環境にインストールするまでを紹介します。Debianのパッケージを使うので、開発環境にもDebianを使用しますが、他の環境でも特に難しい事はないと思います。他の環境でDebianパッケージを使用するには、「クロス開発ツールチェーンをdebからrpmパッケージに変換する」を参照してください。

まず、Debianのパッケージサイトで必要なライブラリのバイナリ・パッケージを検索して、目的のパッケージのページへ移動します。

パッケージを検索する際はディストリビューションを開発環境と合わせてください。2009年7月現在のstableはDebian lennyですが、開発環境としてATDE2を使用している場合はDebian etch (oldstable)を指定してください。

次に、検索結果のパッケージのページ内に各CPUアーキテクチャが表になっているので、ターゲットのアーキテクチャ用のパッケージをダウンロードします。ダウンロードに成功したらdpkg-cross という、パッケージをクロス開発用に変換するコマンドを使用してクロス開発用のパッケージを作成します。作成されたパッケージのファイル名にはcross という文字が入るので、容易に判別できると思います。

最後に作成したパッケージをインストールします。ここではlibssl0.9.7 を例に説明します。

●作成したパッケージをインストール


[PC ~]$ wget http://ftp.jp.debian.org/debian/pool/main/o/openssl/libssl0.9.7_0.9.7e-3_arm.deb
...
[PC ~]$ ls
libssl0.9.7_0.9.7e-3_arm.deb
[PC ~]$ dpkg-cross -b -aarm libssl0.9.7_0.9.7e-3_arm.deb
Building libssl0.9.7-arm-cross_0.9.7e-3_all.deb
[PC ~]$ ls
libssl0.9.7-arm-cross_0.9.7e-3_all.deb  libssl0.9.7_0.9.7e-3_arm.deb
[PC ~]$ su
Password:
[PC ~]# dpkg -i libssl0.9.7-arm-cross_0.9.7e-3_all.deb
Selecting previously deselected package libssl0.9.7-arm-cross.
(Reading database ... 13060 files and directories currently installed.)
Unpacking libssl0.9.7-arm-cross (from libssl0.9.7-arm-cross_0.9.7e-3_all.deb) ...
Setting up libssl0.9.7-arm-cross (0.9.7e-3) ...
[PC ~]#

通常はこれでインストールでますが、ライブラリの中にはpkg-configパッケージを必要とするものがあり、この場合は依存関係が解決できずにインストールに失敗します。

pkg-config は、ライブラリやアプリケーションをコンパイルするときに必要とされるコンパイルオプションを出力するための補助的なツールです。パッケージと一緒にインストールされる .pc ファイルを参照して、必要なオプションの出力を行っています。

このため開発PC用のpkg-configをインストールして、ARM用クロスパッケージの.pc ファイルが置かれる、/usr/arm-linux/lib/pkgconfigをPKG_CONFIG_PATH環境変数に指定すれば、クロス環境向けにpkg-configが使えるようになり、クロス用をインストール必要はありません。ダミーのクロス用pkg-configパッケージをインストールして、この依存関係さえ解決すれば十分です。以下に、ダミーパッケージをインストールする手順を記載します。

●ダミーパッケージをインストール


[PC ~]# apt-get install equivs
[PC ~]# apt-get install pkg-config
[PC ~]# exit
[PC ~]$ wget http://download.atmark-techno.com/misc/softwaredesign/chapter5/mkXdummy
[PC ~]$ chmod 755 mkXdummy
[PC ~]$ ./mkXdummy pkg-config
...
[PC ~]$ ls pkg-config*
pkg-config-arm-cross_1.0_all.deb
[PC ~]# su -
Password:
[armadillo ~]# dpkg -i pkg-config-arm-cross_1.0_all.deb
コンテンツの配信