यह आप एक साझा पुस्तकालय (डिफ़ॉल्ट व्यवहार) के रूप में मानक पुस्तकालय का उपयोग कर रहे हैं जब घर पर अपने कार्यक्रम को जोड़ने लगता है।
लाइब्रेरी को वास्तव में "लिंकिंग" करने के बजाय, आपका लिंकर कुछ प्रतीकों को हल करता है और लाइब्रेरी की वास्तविक लोडिंग को समय-समय पर देरी करते समय एक और ऑपरेशन करता है।
जब आप अपने विश्वविद्यालय कंप्यूटर पर अपने कार्यक्रम क्रियान्वित, लोडर (प्रोग्राम है जो वास्तव में स्मृति में अपने कार्यक्रम लोड करता है और मुख्य थ्रेड फेंकता) लाइब्रेरी को अपने कार्यक्रम की जरूरत के लिए लग रहा है और उन्हें लोड करने की कोशिश करता (linux में LD_LIBRARY_PATH
के लिए देखो यदि आप उत्सुक महसूस करते हैं)।
समस्या यह है कि आप अपने कार्यक्रम को stdlib के संस्करण के साथ घर पर जोड़ रहे हैं जो कि विश्वविद्यालय में आपके जैसा ही संस्करण नहीं है। तो जब लोडर लाइब्रेरी को खोजने का प्रयास करता है, तो यह विफल हो जाता है, और इसलिए आपका प्रोग्राम नहीं चलाया जा सकता है।
समाधान:
क) इन सभी समस्याओं गतिशील जोड़ने के बजाय जोड़ने स्थिर का उपयोग से बचने के लिए। मुझे यकीन नहीं है कि यह stdlib के साथ संभव है, लेकिन मुझे लगता है कि यह परीक्षण करने के लायक है (देखें: http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html और "-स्टैटिक" ध्वज देखें)
बी) आप अपने विश्वविद्यालय कंप्यूटर पर अपने प्रोग्राम को संकलित करने का प्रयास कर सकते हैं तो यह वहां संस्करण का उपयोग करेगा।
सी) यह जानने का प्रयास करें कि कौन सा stdlib संस्करण स्थापित है और अपने कंपाइलर मशीन में एक ही संस्करण स्थापित करें।
डी) आप अपने आवेदन के समान फ़ोल्डर में stdlib के अपने होम संस्करण की प्रतिलिपि बनाने का प्रयास कर सकते हैं।यह आम तौर पर काम करता है क्योंकि लोडर पर्यावरण परिवर्तनीय LD_LIBRARY_PATH
(लिनक्स)
उम्मीद है कि मदद करता है में पथ सेट में देखने से पहले वर्तमान अनुप्रयोग फ़ोल्डर में साझा पुस्तकालयों की खोज करता है।
पी.एस .: यहाँ आप बनाम साझा/गतिशील पुस्तकालयों http://www.network-theory.co.uk/docs/gccintro/gccintro_25.html
और यहाँ (http://en.wikipedia.org/wiki/Library_%28computing%29) एक बहुत अच्छा है लेकिन अधिक पूरा नहीं हुआ पुस्तकालय वर्णन स्थिर करने के लिए एक अच्छा परिचय दिया है।
विश्वविद्यालय में libstdC++ संस्करण क्या है? – phoxis
@phoxis, 3.4.8 या इससे अधिक, ऐसा लगता है। – bdonlan