2010-04-06 11 views
8

मेरे पास मेरे आईडीई में एक प्रोजेक्ट है। एक्सटेंशन में उपयोग करने के लिए मुझे इसकी साझा लाइब्रेरी बनाना होगा। मैं साझा-पुस्तकालय सेटिंग्स के साथ इस प्रोजेक्ट की प्रतिलिपि बनाना नहीं चाहता हूं। क्या मेरे पहले से मौजूद प्रोजेक्ट से ऑब्जेक्ट फाइलों (.o) का उपयोग करके साझा लाइब्रेरी बनाने का कोई तरीका है? जैसा कि मैं समझता हूं, मैं इसके लिए एक मेकफ़ाइल लिख सकता हूं।मौजूदा ऑब्जेक्ट फ़ाइलों से साझा लाइब्रेरी बनाना

उत्तर

13

मुझे लगता है आप यूनिक्स के कुछ प्रकार पर हैं और शायद जीएनयू toolchain उपयोग कर रहे हैं। उस स्थिति में, उचित साझा लाइब्रेरी बनाने के लिए, आपको साझा लाइब्रेरी बनाने से पहले स्थिति-स्वतंत्र कोड फ़्लैग (-फैसिक या -एफपीआईसी) का उपयोग करके अपना कोड संकलित करना होगा। जब तक आपकी .o फाइलें पहले से ही उन झंडे से संकलित नहीं होती हैं, तो संभावना है कि आप एक साझा साझा lib के साथ समाप्त नहीं होंगे।

यदि वे पहले से ही स्वतंत्र कोड की स्थिति के लिए संकलित हैं, तो सामान्य g++ -shared ... चाल चलाना चाहिए।

+2

+1 मैं उल्लेख करना भूल गया कि ऑब्जेक्ट फ़ाइलों को भी fpic की आवश्यकता है। – pajton

+2

@pajton - मान लीजिए कि इससे पहले किससे पकड़ा गया है :)। –

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