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

関連リンク

  • CAT WIKI
  • CAT709
  • CAT760

自動リンク

コメント

Last-modified: 2019-07-22 (月) 17:56:00 (218d)