मैं लिनक्स स्थिर पुस्तकालय (संग्रह) में निर्यात किए गए सी प्रतीकों की संख्या को सीमित करने के तरीकों की तलाश में हूं। मैं इन्हें केवल उन प्रतीकों तक सीमित करना चाहता हूं जो लाइब्रेरी के लिए आधिकारिक API का हिस्सा हैं। मैं पहले से ही अधिकांश कार्यों को स्थिर के रूप में घोषित करने के लिए 'स्थैतिक' का उपयोग करता हूं, लेकिन इससे उन्हें दायरे को दायर करने के लिए प्रतिबंधित किया जाता है। मैं पुस्तकालय में गुंजाइश तक सीमित करने का एक तरीका ढूंढ रहा हूं।लिनक्स स्थैतिक पुस्तकालय में प्रतीकों को प्रतिबंधित करना
मैं Ulrich Drepper के How to Write Shared Libraries में तकनीकों का उपयोग करके साझा पुस्तकालयों के लिए ऐसा कर सकता हूं, लेकिन मैं इन तकनीकों को स्थिर अभिलेखागार में लागू नहीं कर सकता। अपने पहले Good Practices in Library Design पत्र में, वे लिखते हैं:
केवल संभावना सभी वस्तु फ़ाइलें जो 'ld -r' का उपयोग कर और फिर प्रतीकों जो इस संयुक्त द्वारा निर्यात किया जाता है प्रतिबंधित एक में कुछ आंतरिक संसाधनों की जरूरत गठबंधन करने के लिए है ऑब्जेक्ट फ़ाइल जीएनयू लिंकर के पास विकल्प हैं।
क्या कोई मुझे यह जानने में मदद कर सकता है कि ये विकल्प क्या हो सकते हैं? मुझे 'स्ट्रिप-डब्ल्यू-के प्रीफिक्स_ *' के साथ कुछ सफलता मिली है, लेकिन यह क्रूर लगता है। आदर्श रूप में, मुझे एक समाधान चाहिए जो जीसीसी 3 और 4 दोनों के साथ काम करेगा।
धन्यवाद!
यदि आपके पास एक फ़ाइल में सब कुछ है या आप इसे संकलित कर सकते हैं तो यह काम करेगा। अक्सर आप नहीं करते हैं। कभी-कभी आपको अन्य भाषाओं के साथ गठबंधन करने के लिए छोटी फाइलें रखने की आवश्यकता होती है (उदाहरण के लिए हास्केल - यही कारण है कि मुझे यह पृष्ठ मिला)। –
@Maciej: ठीक ओपी ने जीसीसी के बारे में पूछा ... – Joshua