2013-04-24 10 views
5

पर हेडर फ़ाइल (* .h) जेनरेट करें, मैंने लाइब्रेरी फ़ाइल (libmylib.so) साझा की है, लेकिन इसके लिए कोई हेडर फ़ाइल (mylib.h) नहीं है।साझा लाइब्रेरी फ़ाइल (* .so)

क्या आप साझा लाइब्रेरी फ़ाइल से इस हेडर फ़ाइल को उत्पन्न करने के लिए कुछ तरीके/टूल जानते हैं?

+1

संभवतः अव्यवहारिक, यदि असंभव नहीं है। आपको यह कहां मिला। तो फाइल? –

+0

मैं अपने पुराने पुस्तकालय का उपयोग कई उपयोगी कार्यों के साथ करना चाहता हूं। मैं कई साल पहले इस पुस्तकालय को स्रोत के साथ हटा देता हूं। अब मुझे इतनी फाइल मिली और बस मौजूदा तरीकों को देखना चाहते हैं। मैं कुछ तरीकों को पुनर्स्थापित कर सकता हूं और उन्हें कॉल कर सकता हूं, मुझे कुछ विधियों के नाम भी याद हैं, लेकिन पैरामीटर और संरचनाओं के क्रम को याद नहीं है। बेशक, मैं disassembler का उपयोग कर सकते हैं, लेकिन पहले मैं और अधिक आसान तरीका खोजने की कोशिश की। – dzav

+1

आप इस प्रश्न के कुछ जवाब देख सकते हैं: http://stackoverflow.com/q/711220/10077 –

उत्तर

2

यह सामान्य रूप से असंभव है, क्योंकि .so फ़ाइल में पैरामीटर सूचियों के बारे में पर्याप्त जानकारी नहीं है - विशेष रूप से यदि गैर मानक प्रकार (structs, उदाहरण) का उपयोग किया जा रहा है, क्योंकि प्रकार की जानकारी .so का हिस्सा नहीं है फ़ाइल।

भले ही मानक प्रकारों का उपयोग किया जाता है, तर्क सूची ईएलएफ प्रतीक तालिका का हिस्सा नहीं है (http://refspecs.linuxbase.org/elf/elf.pdf 1-15ff देखें)।

हालांकि, यदि पुस्तकालय छीन नहीं है (= इसमें डीबगिंग जानकारी है), DWARF-part में पैरामीटर सूचियों के बारे में जानकारी होती है, विवरण के लिए How to extract function prototypes from an elf file? देखें।

संबंधित मुद्दे