|
CATへのライブラリの追加 †CAT709/CAT760のminirootにはCライブラリなどLinux環境のライブラリが入っていますが、追加のライブラリが必要になることもあるとおもいます。このページでは追加のライブラリをインストールする方法について記述します。 開発機にて †CAT709/CAT760はDebianSargeをベースにしています。開発機にもDebianを奨励しています。Windows上で動くCoLinuxを使い、CoLinux上でDebianSargeをインストールするのも良いでしょう(→こちら)。Debianには豊富な追加パッケージがありますのでこのなかから探してみることにします。JPEGライブラリを例にとって考えます。 記号の説明 $ ← 頭が$の行は一般ユーザーで作業することを示します # ← 頭が#の行はrootユーザーで作業することを示します 検索 †開発機にて以下のコマンドをタイプします $ apt-cache search jpeg :たくさんのパッケージが表示される この中で libjpeg62 を詳しく見てみます。 # apt-cache show libjpeg62 Package: libjpeg62 Priority: optional Section: libs Installed-Size: 192 Maintainer: Bill Allombert <ballombe@debian.org> Architecture: i386 Source: libjpeg6b Version: 6b-10 Depends: libc6 (>= 2.3.2.ds1-4) Filename: pool/main/libj/libjpeg6b/libjpeg62_6b-10_i386.deb Size: 80920 MD5sum: 1517db939ba3894b12298d8fd19cbc10 Description: The Independent JPEG Group's JPEG runtime library The Independent JPEG Group's JPEG library is a library for handling JPEG files. . This package contains the shared library. 開発機へのインストール †開発機にて(i386版の)libjpeg62 のランタイムと、開発パッケージ(-dev)をインストールします。 # apt-get install libjpeg62 libjpeg62-dev 開発機は通常のPCですからとても簡単です。これでアプリケーションのセルフ開発が出来ます。 $ gcc main.c -ljpeg 開発機にクロス・ライブラリをインストール †アプリケーションが完成したとします。次にSH3/SH4へのクロスコンパイルを考えます。 SH3/SH4用のクロスのライブラリはシリコンリナックス社でビルド済みのものが利用できます。パッケージは から探せます。先ほどの Filename: pool/main/libj/libjpeg6b/libjpeg62_6b-10_i386.deb の行に着目し、_386 部分を _sh3 もしくは _sh4 とします。開発機にて $ mkdir work $ cd work $ wget https://www.si-linux.co.jp/pub/debian-sh/pool/main/libj/libjpeg6b/libjpeg62_6b-10_sh3.deb $ wget https://www.si-linux.co.jp/pub/debian-sh/pool/main/libj/libjpeg6b/libjpeg62-dev_6b-10_sh3.deb としてください。見つからない時はあきらめてください(T_T) ダウンロードした _sh3.deb もしくは _sh4.deb は CAT709/CAT760にインストールするべき SH3/SH4のバイナリです。これを形式変換してi386にインストールします(クロスコンパイルしているのではなく、ファイル配置(インストール先)を変更しているだけです) # apt-get install dpkg-cross # dpkg-cross -b -ash3 libjpeg62_6b-10_sh3.deb # dpkg-cross -b -ash3 libjpeg62-dev_6b-10_sh3.deb # ls -l -rw-r--r-- 1 root root 95914 2006-02-22 14:23 libjpeg62-dev-sh3-cross_6b-10_all.deb -rw-r--r-- 1 root root 186812 2005-09-21 19:46 libjpeg62-dev_6b-10_sh3.deb -rw-r--r-- 1 root root 68024 2006-02-22 14:23 libjpeg62-sh3-cross_6b-10_all.deb -rw-r--r-- 1 root root 86938 2005-09-21 19:46 libjpeg62_6b-10_sh3.deb # dpkg -i libjpeg62-sh3-cross_6b-10_all.deb # dpkg -i libjpeg62-dev-sh3-cross_6b-10_all.deb これで開発機にSH3/SH4のjpegライブラリがインストールされました。クロスコンパイルが通るようになったはずです。 $ sh3-linux-gcc main.c -ljpeg CAT709/CAT760へのインストール †最後にCAT709/CAT760にライブラリファイルをインストールします。先ほどdpkg-crossで形式変換し、その後 dpkg -i でインストールしたファイルは開発機の /usr/sh3-linux/ 以下に存在します。 $ ls /usr/sh3-linux/lib/libjpeg* -l -rw-r--r-- 1 root root 148744 2005-09-14 01:44 /usr/sh3-linux/lib/libjpeg.a -rw-r--r-- 1 root root 812 2006-02-22 14:23 /usr/sh3-linux/lib/libjpeg.la lrwxrwxrwx 1 root root 17 2006-02-22 14:24 /usr/sh3-linux/lib/libjpeg.so -> libjpeg.so.62.0.0 lrwxrwxrwx 1 root root 17 2006-02-22 14:24 /usr/sh3-linux/lib/libjpeg.so.62 -> libjpeg.so.62.0.0 -rw-r--r-- 1 root root 108748 2005-09-14 01:44 /usr/sh3-linux/lib/libjpeg.so.62.0.0 この場合は「libjpeg.so.62.0.0」がライブラリ本体。「libjpeg.so」及び「libjpeg.so.62」はライブラリ本体へのシンボリックリンクです。この3つのファイルをそのままCAT709/CAT760の /usr/lib/ にコピーします。 supercat:# rommode rw supercat:# cd /usr/lib/ supercat:# cp -a /開発機のNFSマウント先等/usr/sh3-linux/lib/libjpeg.so* . supercat:# rommode ro 関連リンク †
自動リンク コメント † |