Atmark Distに含まれないアプリケーションやライブラリをビルドする際に、付属DVDやダウンロードサイトには用意されていないライブラリパッケージが必要になることがあります。ここでは、クロス開発用ライブラリパッケージの作成方法およびそのインストール方法を紹介します。
2.3.1. dpkg-crossコマンドを使用する
まず、作成したいクロス開発用パッケージの元となるライブラリパッケージを取得します。取得するパッケージは、アーキテクチャをターゲットに、Debianディストリビューションのバージョンを開発環境に合わせる必要があります。Armadillo-400シリーズでは、アーキテクチャはarmel、Debianディストリビューションのバージョンは wheezy (2015年10月現在の旧安定版)になります。
例えば、libjpeg62の場合、ダウンロードするファイルは「libjpeg62_[version]
_armel.deb
」になります。Debianパッケージは、Debianのパッケージページから検索して取得することができます。
取得したライブラリパッケージをクロス開発用に変換するには、dpkg-crossコマンドを使用します。
[ATDE ~]$
dpkg-cross --build --arch armel -M libjpeg62_[version]
_armel.deb
[ATDE ~]$
ls
libjpeg62-armel-cross_[version]
_all.deb libjpeg62_[version]
_armel.deb
--build
オプションはクロス開発用に変換されたDebianパッケージを作成することを意味します。--arch
オプションにはアーキテクチャを指定します。libjpeg62はMulti-Arch packageであるため-M
オプションを付加する必要があります。最後の引数には変換したいライブラリパッケージを指定します。
dpkg-crossはクロス開発用のライブラリパッケージパッケージの「libjpeg62-armel-cross_[version]
_all.deb
」を作成します。ファイル名の「armel-cross
」はarmelクロス開発用を意味し、「_all」はすべてのアーキテクチャの開発用PCにインストールすることができることを意味します。
次に、dpkgコマンドを-i
オプションを付けて実行し、クロス開発用に変換したパッケージをインストールします。
[ATDE ~]$
sudo dpkg -i libjpeg62-armel-cross_[version]
_all.deb
dpkg-cross --build --arch armelで作成したクロス開発用ライブラリパッケージをインストールすると、ファイルは/usr/arm-linux-gnueabi
ディレクトリ以下にインストールされます。ライブラリファイルは/usr/arm-linux-gnueabi/lib
ディレクトリに、ヘッダファイルは/usr/arm-linux-gnueabi/include
ディレクトリに置かれます。
| パッケージ名の最後が-devのパッケージ |
---|
パッケージ名の最後が-devになっているパッケージは開発用のものです。開発用パッケージにはヘッダーファイルなどが入っています。例えばlibjpeg62パッケージの開発用パッケージ名は、libjpeg62-devになります。libjpeg62を使用するソースコードをコンパイルする場合は、libjpeg62-devパッケージも必要になります。 クロス開発を行う場合はこのようなケースが多いので、新しいクロス開発用パッケージをインストールする場合、開発用パッケージもインストールしておくのが良いでしょう。 |
| アプリケーションの場合 |
---|
アプリケーションのパッケージには、ライブラリファイルもヘッダーファイルも含まれていないので、dpkg-crossコマンドでクロス開発用パッケージに変換することができません[]。 ARM用のDebianパッケージに含まれる、アプリケーションの実行ファイルをArmadilloで動作させたい場合、まず、dpkg -xを実行して、パッケージに入っているファイルを取り出します。該当のファイルを探し、Armadilloのユーザーランドに配置するだけでアプリケーションを使用することができます。 このようにして配置したアプリケーションを使用する場合に、ライブラリや設定ファイルが必要な場合もあります。うまく動作しなかった場合は、パッケージの依存関係や、設定ファイルの有無を調べてください。 また、4章Armadillo上にDebian GNU/Linuxを構築するで紹介する手順を行ない、Armadillo上にDebian GNU/Linuxを構築することでArmadillo上でもapt-getコマンドが使用できるようになります。 |