2008-10-23 11 views
8

मेरे पास सॉफ्टवेयर का एक टुकड़ा है जो कई पुस्तकालयों के खिलाफ जुड़ा हुआ है। वे सभी गतिशील (.so) और स्थिर (.a) संस्करण में मौजूद हैं। डिफ़ॉल्ट रूप से, g ++ का उपयोग करते समय यह पुस्तकालयों के गतिशील संस्करण को चुनता है और यह मेरे साथ ठीक है।मैं कैसे निर्दिष्ट कर सकता हूं कि लाइब्रेरी एक्स को स्थिर रूप से लिंक किया जाना चाहिए?

हालांकि, उनमें से एक को पूरी तरह से स्थिर रूप से लिंक करने की आवश्यकता है। मैंने -static का उपयोग करने के बारे में सोचा लेकिन फिर यह उन सभी के लिए एक स्थिर संस्करण का उपयोग करता है, जो मैं नहीं चाहता हूं।

मैं कैसे निर्दिष्ट कर सकता हूं कि लाइब्रेरी एक्स को स्थिर रूप से लिंक किया जाना चाहिए, जबकि अन्य libs के साझा संस्करण के विरुद्ध जुड़े रहेंगे?

उत्तर

9

जी ++ -ओ foo (foo-वस्तुओं) -Wl, -Bstatic -lmustbestatic -Wl, -Bdynamic -lother-लिब

+0

धन्यवाद, यह मैं वास्तव में क्या देख रहा था था! – Barth