2013-04-24 23 views
5

ライブラリファイル(libmylib.so)を共有しましたが、ヘッダファイル(mylib.h)がありません。共有ライブラリファイル(* .so)のヘッダファイル(* .h)を生成

共有ライブラリファイルからこのヘッダーファイルを生成する方法やツールがありますか?

+1

おそらく不可能ではないにしても、実際的ではありません。この.soファイルはどこにありますか? –

+0

多くの便利な機能を備えた古いライブラリを使いたいです。私は何年も前にこのライブラリをソースで削除します。今、私はso-fileを見つけて、既存のメソッドを見たいだけです。私はいくつかのメソッドを復元することができ、それらを呼び出すことができますまた、いくつかのメソッドの名前を覚えていますが、パラメータや構造の順序を覚えていません。もちろん、私は逆アセンブラを使うことができますが、まずはもっと簡単な方法を見つけようとします。 – dzav

+1

この質問の回答の一部を見ることができます:http://stackoverflow.com/q/711220/10077 –

答えて

2

.soファイルにパラメータリストに関する情報が含まれていないため、一般的には不可能です。特に、非標準型(構造体など)が使用されている場合は、型情報が.soファイル。

標準タイプのみが使用されても、引数リストはELFシンボルテーブルの一部ではありません(http://refspecs.linuxbase.org/elf/elf.pdf 1-15ffを参照)。

しかし、ライブラリが削除されていない(デバッグ情報が含まれている)場合、DWARFパートにはパラメータリストに関する情報が含まれています。詳細はHow to extract function prototypes from an elf file?を参照してください。

関連する問題