▲Zaurus Top | ↑Up(設定・システム) | ←Prev(携帯電話でインターネット接続) | →Next(Cross 開発環境の構築)
(2003/09/22)
こんなことをしようと思った動機と、結論を先に書いておく
というように、現時点で、PIM の OPIE 化には失敗した(最近失敗多し)わけだが、わかったことをまとめておく。
似たようなものがいっぱいあるので、整理しておく。
かみきさんの所に、とても詳しい情報がある。
上のような種類の中から、sharprom バージョンを使うことにする。用意したものと内容物は次の通り。アーカイブからインストールすると、依存関係でひっかかるので、展開して出てきたファイルを直接 Zaurus にコピーすることにする。何をやっているか自分で理解するためと、後で元に戻すため、手動コピーをおすすめする。ipk をばらして手動インストールする方法は、こちら。
OPIE for shaprom-1.0 が提供するライブラリと、日本版の SL-C760 の出荷時でのライブラリの違いは次の通り。
SL-C760 Factory ROM | OPIE for sharprom-1.0 |
---|---|
libqte | |
opt/QtPalmtop/lib/libqte.so.2.3.2 size=4360844 | opt/QtPalmtop/lib/libqte.so.2.3.2 size=3644404 |
libqpe | |
opt/QtPalmtop/lib/libqpe.so.1.5.0 size=1573568 | opt/QtPalmtop/lib/libqpe.so.1.5.0 size=1474988 |
libopie | |
N/A | opt/QtPalmtop/lib/libopie.so.1.0.0 size=1058912 |
ここで重要なのが、libqte と libqpe のバージョンが一緒なのに中身が非互換なことだ。バージョンが違えばライブラリは同居できる。ダイナミックリンカが、アプリケーションの要求するバージョンのライブラリを自動的に使ってくれる。しかし、バージョンが一緒だと、ダイナミックリンカが混乱するのでできない。preload を使えば、騙せるかもしれないが、それは試していない。
しかがたがないので、libqte と libqte はインストールしないで、libopei のみ OPIE for shaprom-1.0 から持ってくる。
どこかに libopie.so.1.0.0 を置いておいて、次のようにシンボリックリンクを張る。終ったら、root で ldconfig を実行しておく。
libopie.so.1 -> libopie.so.1.0.0 libopie.so.1.0 -> libopie.so.1.0.0 libopie.so.1.0.0 -> /mnt/card/Documents/work/opt/QtPalmtop/lib/libopie.so.1.0.0
bash-2.05$ ldd todolist libqpe.so.1 => /opt/QtPalmtop/lib/libqpe.so.1 (0x40022000) libopie.so.1 => /opt/QtPalmtop/lib/libopie.so.1 (0x401ab000) libqte.so.2 => /opt/QtPalmtop/lib/libqte.so.2 (0x402b5000) libc.so.6 => /lib/libc.so.6 (0x406e9000) libdl.so.2 => /lib/libdl.so.2 (0x40804000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4080f000) libm.so.6 => /lib/libm.so.6 (0x40844000) libjpeg.so.62 => /opt/QtPalmtop/lib/libjpeg.so.62 (0x40872000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
bash-2.05$ ./advancedfm Display size = 480x640 <<<<<<<<<<<<<<<<<<<<<<<< OPIE!!! QPixmap::convertFromImage: Cannot convert a null image advancedfm QObject::connect: No such slot AdvancedFM::openSearch() QObject::connect: (sender name: 'unnamed') QObject::connect: (receiver name: 'unnamed') ./advancedfm: error while loading shard libraries: ./advancedfm: undefined symbol: setUseLabel__10MenuButtonb
▲Zaurus Top | ↑Up(設定・システム) | ←Prev(携帯電話でインターネット接続) | →Next(Cross 開発環境の構築)