2013-04-24 43 views
5

我已經共享庫文件(libmylib.so),但自己也沒有頭文件(mylib.h)。生成的頭文件(* .h)中對共享庫文件(*。所以)

你知道一些方法/工具來生成共享庫文件這個頭文件?

+1

也許不切實際的,甚至是不可能的。你在哪裏得到這個.so文件? – 2013-04-24 16:19:18

+0

我想用我的舊圖書館提供許多有用的功能。我很多年前就把這個庫與源代碼一起移除。現在我找到了這個文件,只想看看現有的方法。我可以恢復一些方法,可以打電話給他們,還記得名字了一些方法,但不記得的參數和結構秩序。當然,我可以使用反彙編,但首先我試圖找到更簡單的方法。 – dzav 2013-04-24 16:51:59

+1

你可能看一些回答這個問題:http://stackoverflow.com/q/711220/10077 – 2013-04-24 16:55:56

回答

2

這是一般是不可能的,因爲.so文件不包含有關參數表的足夠信息 - 特別是如果正在使用非標準類型(結構,例如)時,由於類型信息不是。所以部分文件。

即使只使用標準類型,參數列表也不是ELF符號表的一部分(請參閱http://refspecs.linuxbase.org/elf/elf.pdf 1-15ff。)。但是,如果庫沒有被剝離(=它包含調試信息),那麼DWARF部分確實包含了關於參數列表的信息,詳情請參閱How to extract function prototypes from an elf file?