ブログ

アプリケーションを動作させるために必要なライブラリを調べる方法

at_ito
2016年6月6日 13時53分

独自作成したアプリケーションや、Debianパッケージ等から持ってきたアプリケーションをArmadilloで動作させる際に、共有ライブラリが見つからないというエラーが発生することがあるかと思います。アプリケーションを動作させるには、動作するために必要としている共有ライブラリをArmadilloに追加する必要があります。

その際に、アプリケーションがどのようなライブラリを必要としているか、ATDE上で調べる方法がありますので、以下に紹介します。

アプリケーションに必要なライブラリは、以下のコマンドで調べることができます。

[ATDE ~]$ arm-linux-gnueabi-readelf -d アプリケーション | grep NEEDED
  • ※: Armadillo-800シリーズではarm-linux-gnueabihf-readelfコマンドを使用してください。


例として、Armadilloの標準イメージに含まれるbusyboxが必要としているライブラリを調べると以下のようになります。

[ATDE ~/atmark-dist]$ arm-linux-gnueabi-readelf -d romfs/bin/busybox | grep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

上記内容から、busyboxを動作させるには「libm.so.6」と「libc.so.6」が必要なことがわかります。