काम नहीं कर रहा है मैं कुछ पर्यावरण चर सेट करने के तरीके को समझने की कोशिश कर रहा हूं जो पुस्तकालयों के सही संस्करणों से लिंक करने के लिए g ++ बना देगा।जीसीसी डिफ़ॉल्ट रूप से डिफ़ॉल्ट लिंकर खोज पथ से पहले कैसे जोड़ना है? LIBRARY_PATH
मेरे पास/usr/lib64 में कुछ पुराने बूस्ट लाइब्रेरी हैं (इनके खिलाफ लिंक विफल हो जाएगा) और/v/users/regel/lib में नए पुस्तकालय हैं। तो लिंकर को नए पुस्तकालयों के खिलाफ लिंक करना चाहिए।
कमान:
$ g++ test.cpp -lboost_system -L/v/users/regel/lib
लिंक कार्यक्रम सही ढंग से। हालांकि, मैं इसे लिंकर के लिए नंबर 1 खोज निर्देशिका के रूप में सेट करना चाहता हूं ताकि जब भी मैं लिंक करता हूं तो मुझे '-L' निर्दिष्ट करने की आवश्यकता नहीं है।
निम्नलिखित वातावरण चर चाल करने के लिए नहीं है:
$ LIBRARY_PATH=/v/users/regel/lib g++ test.cpp -lboost_system
/tmp/regel/cc4SmBtI.o: In function `main':
test.cpp:(.text+0x5): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
और
$ LD_LIBRARY_PATH=/v/users/regel/lib:$LD_LIBRARY_PATH g++ test.cpp -lboost_system
/tmp/regel/ccUreBZy.o: In function `main':
test.cpp:(.text+0x5): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
समान विषयों पर अनेक लेख और पोस्ट पढ़ के बावजूद, मैं एक समाधान अभी तक नहीं मिली है।
क्या आपने g ++ चलाने से पहले LD_LIBRARY_PATH को निर्यात करने की कोशिश की है (इसे g ++ कमांड लाइन पर प्रदान करने के बजाय)? –
मैंने g ++ चलाने से पहले LIBRARY_PATH और LD_LIBRARY_PATH दोनों को निर्यात करने का प्रयास किया है। – Regel
@ फ्रैंकस्चिमट, इसे जिस तरह से ओपी के निर्यात के समान प्रभाव पड़ा है, लेकिन उस कमांड और उसके बच्चों तक सीमित है) ताकि –