[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 メーリングリストの案内