के साथ सी लाइब्रेरी को लिंक करना मैं एक प्रोग्राम को संकलित करने के लिए जीसीसी का उपयोग कर रहा हूं जिसे मुझे गैर-मानक नाम वाले सी पुस्तकालय से लिंक करने की आवश्यकता है; इसे libstuff.a
के बजाय stuff.a
कहा जाता है।गैर-मानक नाम
मैं फ़ाइल का नाम (अनुमति समस्या) नहीं बदल सकता।
मैं पूरी लाइब्रेरी (अर्थात gcc program.c stuff.a -oprogram
का प्रयोग करके)
मैं gcc program.c -L/path/to/library/ -lstuff -oprogram
के रूप में संकलित करने के लिए चाहते हैं, लेकिन जीसीसी पुस्तकालय नहीं मिलेगा (क्योंकि यह libstuff.a
नहीं बुलाया जाता है) शामिल करने के लिए नहीं करना चाहती।
मैं एक लिनक्स बॉक्स पर काम कर रहा हूं।
मैं (गतिशील) लिंकिंग कैसे प्राप्त कर सकता हूं?
संपादित करें:
आप सभी, और मेरी क्षमा याचना एक खराब शब्दों में प्रश्न के लिए धन्यवाद।
मेरे पास एक साझा ऑब्जेक्ट भी नहीं था (मैंने सोचा कि मैं गतिशील रूप से * .a फ़ाइल से लिंक कर सकता हूं), इसलिए यह आप में से कई को भ्रमित कर दिया। फिर, मेरी अज्ञानता के लिए क्षमा चाहते हैं।
मैं जो कर रहा हूं वह स्थानीय निर्देशिका में साझा ऑब्जेक्ट बना रहा है, मेरे एलडी_LIBRARY_PATH पर्यावरण चर में स्थान जोड़ रहा है, और फिर से लिंक कर रहा है।
यह एक आकर्षण की तरह काम करता है (1.3 एम निष्पादन योग्य से 5.8K तक)।
फिर से धन्यवाद।
पुस्तकालय का एक साझा वस्तु संस्करण मौजूद है (stuff.so)? – jschmier
उल्लेख करना भूल गया, मैं लिनक्स पर काम कर रहा हूं। – Escualo
@jschmier: नहीं, केवल '.a' लाइब्रेरी। – Escualo