[Armadillo:03724] 自作アプリの動作に必要な共有オブジェクトをユーザランドイメージに含めるには?
Takenoshita Koyo
email@hidden
2008年 11月 26日 (水) 18:29:21 JST
> 自作アプリをatmark-distで作成しました。
> arm9にコピーして試したところ、
> ”共有ライブラリはない”というエラーは発
> 生しました。( ”librt.so.1は存在していない”
> ようなメッセージ)。
自作アプリで使用する共有オブジェクト(librt.so.1)を、
ユーザランドイメージ(romfs.img)に含めたい
というのが、元々の目的なのですね。
> 解決策は二つがあると思います。
> 1 共有ライブラリをromfs.imgに追加し、
> arm9にインストールします
atmark-dist/vendors/AtmarkTechno/Armadillo-XX/usr/bin
というディレクトリを作成し、自作アプリのバイナリをコピーしてください。
(Armadillo-XXの部分は、使用しているプロダクトに合わせて下さい)
次に、atmark-dist/vendors/AtmarkTechno/Armadillo-XX/Makefile
のROMFS_DIRSに "usr/bin" を追加して下さい。
その後、atmark-distディレクトリ以下で、make romfsすると
atmark-dist/romfs/usr/bin/ ディレクトリに自作アプリのバイナリが、
atmark-dist/romfs/lib/ ディレクトリに自作アプリの動作に必要なライブラリが
コピーされます。
最後に、atmark-distディレクトリ以下で、make imageすると
自作アプリと必要なライブラリを含んだromfs.img(.gz)が作成されます。
以下の過去ログも参照してください。
http://lists.atmark-techno.com/pipermail/armadillo/2007-October/002205.html
また、自作アプリのソースコードもatmark-distへ統合する方法については、
atmark-dist開発者ガイドの
10.2. プロダクト別のアプリケーション
10.3. user ディレクトリへのマージ
を参照してください。
> 2 共有ライブラリをアプリに追加し(スタティックリンク)、
> arm9にインストールします。
arm-linux-gnu-gcc -static sample.c
のように、-staticオプションを使用すると、ライブラリがスタティックリンク
されると思います。
--
Koyo Takenoshita
armadillo メーリングリストの案内