Android NDKを使うと、ビルド時に共有ライブラリ(.so)ファイルにお世話になることがある。
そこで、.soファイルが正しく作られているのか、Mac環境で確認したい。
nmとかstringsとかobjdumpを使う方法があるが、詳しくは参考サイト参照。(objdumpを使うと、調べたかった.soファイルが壊れていたのか、"曖昧なファイルです"と怒られてしまった。)
今回はgreadelfコマンドを使う。
-
インストール
brew install binutils
- binutilsにobjdumpやreadelfが入っている
- gobjdump, greadelfといように、先頭にgがついたコマンド群になっている模様
-
実行例
$ greadelf -l sample.so
- プログラムヘッダ等などかなり色々な情報が見れる。詳しくはmanページ参照。
参考サイト
http://d.hatena.ne.jp/aki-yam/20091122/1258905636
http://d.hatena.ne.jp/amachang/20080401/1207027290