मान लीजिए कि मेरे पास फ़ाइल main.cpp
है जो sin()
फ़ंक्शन का उपयोग करती है जिसे libmath
में परिभाषित किया गया है। यह भी मान लें कि हमारे पास libmath.a और libmath.so दोनों एक ही निर्देशिका में उपलब्ध हैं। अब अगर मैं g++ -o main main.cpp -lmath
कमांड जारी करता हूं तो लिनक्स का डिफ़ॉल्ट व्यवहार साझा लाइब्रेरी libmath.so
से लिंक करना है। मैं जानना चाहता हूं कि साझा लाइब्रेरी को हटाने या स्थानांतरित किए बिना प्रोग्राम को स्थिर पुस्तकालय libmath.a
से जोड़ने के लिए मजबूर करने का कोई तरीका है?जब मैं एक ही नाम की साझा लाइब्रेरी मौजूद है, तो मैं एक स्थिर लाइब्रेरी से लिंक कैसे कर सकता हूं
उत्तर
आपको लिंकर को -स्टैटिक पास करना होगा, लेकिन केवल विशेष पुस्तकालयों के लिए आपको ही जाना होगा। उदाहरण के लिए: इस समारोह
g++ -o main main.cpp -Wl,-Bstatic -lmath -Wl,-Bdynamic
मुझे लगता है कि आपका मतलब "-स्टैटिक" के बजाय "-बस्टैटिक" है। बहुत खराब एकल चरित्र संपादन की अनुमति नहीं है ... –
निश्चित रूप से यह जीसीसी/binutils के लिए कोई फर्क नहीं पड़ता, -स्टैटिक और -स्टैटिक जीएनयू लिंकर में समानार्थी हैं। – nos
उपयोग:
g++ -o main main.cpp /path_to/libmath.a
अपने लिंकर का समर्थन करता है, तो -l:<filename>
आप उपयोग कर सकते हैं:
g++ -o main main.cpp -l:libmath.a
- 1. निर्माण के दौरान एक साझा लाइब्रेरी को एक स्थिर लाइब्रेरी से लिंक करें?
- 2. एक साझा लाइब्रेरी में एक स्थिर लाइब्रेरी को कनवर्ट करें?
- 3. किसी साझा लाइब्रेरी में लिंक होने पर फ़ंक्शंस को एक स्थिर लाइब्रेरी से छीनने से रोकना?
- 4. साझा लाइब्रेरी नाम टकराव
- 5. मैं कैसे निर्दिष्ट कर सकता हूं कि लाइब्रेरी एक्स को स्थिर रूप से लिंक किया जाना चाहिए?
- 6. एक स्वचालित लाइब्रेरी में एक साझा लाइब्रेरी (.so) कैसे बनाएं?
- 7. मैं कॉफीस्क्रिप्ट में जावास्क्रिप्ट लाइब्रेरी कैसे आयात कर सकता हूं?
- 8. साझा लाइब्रेरी के लिए एक सी ++ स्टेटिक लाइब्रेरी लिंक कर सकते हैं?
- 9. मैं बूस्ट लाइब्रेरी नामकरण को कैसे डीकोड कर सकता हूं?
- 10. लिनक्स में मैं कैसे बता सकता हूं कि मैं एक स्थिर या गतिशील पुस्तकालय से जुड़ा हूं?
- 11. एक स्थिर लाइब्रेरी के खिलाफ साझा लाइब्रेरी को जोड़ना: क्या एक क्लासिक लाइब्रेरी को अलग-अलग संकलित किया जाना चाहिए यदि कोई एप्लिकेशन इसे लिंक कर रहा हो?
- 12. मैं libc.a को बांह-लिनक्स उपयोग में साझा लाइब्रेरी में कैसे साझा कर सकता हूं arm-none-linux-gnueabi-gcc
- 13. साझा लाइब्रेरी निर्माण में शामिल करने के लिए एक स्थिर लाइब्रेरी से प्रतीकों को कैसे बल देना है?
- 14. स्टेटिक लाइब्रेरी से लिंक
- 15. स्थिर लिंक लाइब्रेरी को गतिशील डीएल
- 16. मैं एक स्थिर फ़ाइल को कैसे रूट कर सकता हूं?
- 17. स्थिर लाइब्रेरी
- 18. एक स्थिर लिंक से एक डीएलएल धीमा है?
- 19. साझा लाइब्रेरी की निर्भरता लिंकिंग
- 20. जीसीसी एक निष्पादन योग्य ईएलएफ फ़ाइल आउटपुट करता है जब मैं एक साझा लाइब्रेरी
- 21. मैं कोड :: ब्लॉक के साथ लाइब्रेरी से कैसे लिंक करूं?
- 22. मैं codebird.js ट्विटर लाइब्रेरी का उपयोग कैसे कर सकता हूं?
- 23. एक साझा लाइब्रेरी में एक साझा लाइब्रेरी को कनवर्ट करें (libsome.a से libsome.so बनाएं): मेरे प्रतीक कहां हैं?
- 24. जब मैं एक विशिष्ट घटक प्रकाशित करता हूं तो मैं किस लिंक किए गए घटक प्रकाशित कर सकता हूं?
- 25. मैं बिल्डिंग लाइब्रेरी प्रोजेक्ट्स का प्रबंधन कैसे कर सकता हूं जो एक स्थिर lib और dll दोनों उत्पन्न करते हैं?
- 26. मैं ROME आरएसएस लाइब्रेरी जार कहां डाउनलोड कर सकता हूं?
- 27. साझा लाइब्रेरी कन्स्ट्रक्टर
- 28. मैं एक jcurses लाइब्रेरी कैसे स्थापित करूं?
- 29. स्थिर लाइब्रेरी से साझा ऑब्जेक्ट फ़ाइल कैसे बनाएं
- 30. मैं एकाधिक सिथॉन पीईएक्स फ़ाइलों को एक एकल लिंक्ड लाइब्रेरी में कैसे विलय कर सकता हूं?
की संभावित डुप्लिकेट [जी ++ लिंकर: यदि स्थिर पुस्तकालय मौजूद है स्थिर जोड़ने के लिए मजबूर? ] (http://stackoverflow.com/questions/3698321/g-linker-force-static-linking-if-static-library-exists) –