2008-10-31 17 views
7

libsamplerate.a के खिलाफ मेरा आवेदन लिंक। मैं अंतिम बाइनरी को आसान बनाने के लिए ऐसा कर रहा हूं।जीसीसी संकलित स्थिर पुस्तकालय में क्या होता है?

मुझे चिंता है कि शायद .a फ़ाइल के अंदर कोड कुछ अन्य पुस्तकालयों पर निर्भर करता है, मुझे भी वितरित करने की आवश्यकता होगी।

लेकिन अगर मुझे चिंता नहीं है तो मैं अपने आवेदन को बहुत अधिक प्रतियों सहित बहुत अधिक कर रहा हूं। libc।

libsamplerate.a के अंदर वास्तव में क्या होगा? बस libsamperate के बाइटकोड? या ज्यादा?

उत्तर

5

एक स्थिर पुस्तकालय सिर्फ वस्तु फ़ाइलों का एक संग्रह है। जब आप एक स्थिर पुस्तकालय के खिलाफ एक प्रोग्राम संकलित करते हैं, तो आपके प्रोग्राम द्वारा उपयोग किए जाने वाले कार्यों के लिए ऑब्जेक्ट कोड लाइब्रेरी से आपके निष्पादन योग्य में कॉपी किया जाता है। एक स्थिर लाइब्रेरी के खिलाफ लिंक करने से उस लाइब्रेरी के बाहर किसी भी कार्य को आपके कोड में शामिल नहीं किया जाएगा।

1

बस libsamplerate के लिए ऑब्जेक्ट कोड। एक पुस्तकालय के खिलाफ स्थैतिक रूप से जोड़ने से सभी पुस्तकालयों को स्थिर रूप से लिंक नहीं किया जाता है; वह बुरा होगा।

6

ए। ए फ़ाइल मूल रूप से सिर्फ .o फ़ाइलों का एक बंडल है। आप इसे ar उपकरण का उपयोग करके प्रदर्शित कर सकते हैं।

उदाहरण के लिए, अपने पुस्तकालय की सामग्री प्रदर्शित करने:

ar -t libsamplerate.a 

स्क्रैच से एक .a फ़ाइल बनाने के लिए:

ar -r tim.a *.txt 
संबंधित मुद्दे