gcc - मुझे समझ में नहीं आता-Wl,-rpath-Wl,




ld (3)

आप भी लिख सकते हैं

-Wl,-rpath=.

उस अजीब जगह से छुटकारा पाने के लिए। यह अतिरिक्त अल्पविराम जोड़ने से तर्कसंगत रूप से अधिक पठनीय है (यह वही है जो एलडी को पास किया जाता है)।

सुविधा के लिए मैंने नीचे प्रासंगिक मैनपेज जोड़े।

मेरी (गलत) समझने पहले: अगर मुझे विकल्पों को अलग करने की ज़रूरत है, तो इसका मतलब है कि दूसरा -Wl दूसरा विकल्प नहीं है क्योंकि यह पहले आता है , जिसका अर्थ है कि यह -rpath विकल्प का तर्क है।

मुझे समझ में नहीं आता कि कैसे -rpath एक -Wl,. हो सकता है -Wl,. तर्क!

मेरे दिमाग में क्या अर्थ होगा यह होगा:

-Wl,-rpath .

यह वर्तमान निर्देशिका तर्क के साथ -rpath लिंकर विकल्प का आह्वान करना चाहिए।

आदमी जीसीसी:

-Wl, विकल्प

लिंकर के विकल्प के रूप में पास विकल्प। यदि विकल्प अल्पविराम है, तो इसे अल्पविराम में कई विकल्पों में विभाजित किया गया है। विकल्प के लिए तर्क देने के लिए आप इस वाक्यविन्यास का उपयोग कर सकते हैं। उदाहरण के लिए, -Wl,-Map,output.map , -Wl,-Map,output.map passes -Map output.map लिंकर पर पास करता है। जीएनयू लिंकर का उपयोग करते समय, आप '-Wl, -Map = output.map' के साथ भी वही प्रभाव प्राप्त कर सकते हैं।

आदमी एलडी:

-rpath = dir

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


एक और बात आपको -एल विकल्प भी निर्दिष्ट करने की आवश्यकता हो सकती है - उदाहरण के लिए

-Wl,-rpath,/path/to/foo -L/path/to/foo -lbaz

या आप एक त्रुटि के साथ खत्म हो सकता है

ld: cannot find -lbaz

जीसीसी के लिए -Wl,xxx विकल्प लिंकर को तर्कों की एक स्पेस से अलग सूची के रूप में टोकन की अल्पविराम से अलग सूची पास करता है। इसलिए

gcc -Wl,aaa,bbb,ccc

अंत में एक लिंकर कॉल बन जाता है

ld aaa bbb ccc

आपके मामले में, आप " ld -rpath . " कहना चाहते हैं, तो आप इसे gcc के रूप में -Wl,-rpath,. रूप में पास करते हैं -Wl,-rpath,. वैकल्पिक रूप से, आप -Wl दोहराने के उदाहरण निर्दिष्ट कर सकते हैं:

gcc -Wl,aaa -Wl,bbb -Wl,ccc

ध्यान दें कि aaa और second- -Wl बीच कोई अल्पविराम नहीं है।

या, आपके मामले में, -Wl,-rpath -Wl,.





rpath