नाम एलडी - एलडी, जीएनयू लिंकर का उपयोग करना SYNOPSIS एलडी विकल्प objfile … विवरण ld कई ऑब्जेक्ट्स और संग्रह फ़ाइलों को जोड़ती है, उनके डेटा को स्थानांतरित करती है और प्रतीक संदर्भों को जोड़ती है। आमतौर पर एक प्रोग्राम संकलन में अंतिम चरण चलाने के लिए हैld. ld लिंकिंग प्रक्रिया पर स्पष्ट और कुल नियंत्रण प्रदान करने के लिए, एटी एंड टी के लिंक संपादक कमांड भाषा सिंटैक्स के एक सुपरसेट में लिखे गए लिंकर कमांड भाषा फ़ाइलों को स्वीकार करता है। यह मैन पेज कमांड भाषा का वर्णन नहीं करता है; देखेंld कमांड भाषा और जीएनयू लिंकर के अन्य पहलुओं पर पूर्ण जानकारी के लिए "जानकारी", या मैनुअल एलडी: जीएनयू लिंकर में प्रवेश। का यह संस्करणld ऑब्जेक्ट फ़ाइलों पर काम करने के लिए सामान्य उद्देश्य बीएफडी पुस्तकालयों का उपयोग करता है। यह अनुमति देता हैld कई अलग-अलग प्रारूपों में ऑब्जेक्ट फ़ाइलों को पढ़ने, गठबंधन करने और लिखने के लिए --- उदाहरण के लिए, सीओएफएफ या "ए.ओउट"। किसी भी उपलब्ध प्रकार की ऑब्जेक्ट फ़ाइल बनाने के लिए विभिन्न प्रारूपों को एक साथ जोड़ा जा सकता है। इसकी लचीलापन के अलावा, जीएनयू लिंकर नैदानिक जानकारी प्रदान करने में अन्य लिंकर्स की तुलना में अधिक सहायक है। कई लिंकर्स एक त्रुटि का सामना करने पर तत्काल निष्पादन छोड़ देते हैं; जब भी संभव हो,ld निष्पादन जारी है, जिससे आप अन्य त्रुटियों की पहचान कर सकते हैं (या, कुछ मामलों में, त्रुटि के बावजूद आउटपुट फ़ाइल प्राप्त करने के लिए)। जीएनयू लिंकरld परिस्थितियों की एक विस्तृत श्रृंखला को कवर करने के लिए है, और अन्य लिंकर्स के साथ जितना संभव हो उतना संगत होना है। नतीजतन, आपके व्यवहार को नियंत्रित करने के लिए आपके पास कई विकल्प हैं। विकल्प लिंकर कमांड लाइन विकल्पों का एक बड़ा समर्थन करता है, लेकिन वास्तविक अभ्यास में उनमें से कुछ किसी विशेष संदर्भ में उपयोग किए जाते हैं। उदाहरण के लिए, लगातार उपयोगld एक मानक, समर्थित यूनिक्स सिस्टम पर मानक यूनिक्स ऑब्जेक्ट फ़ाइलों को लिंक करना है। ऐसी प्रणाली पर, "hello.o" फ़ाइल को लिंक करने के लिए: मैं करता हूँ /lib/crt0.o hello.o -lcइससे पताld एक फाइल का उत्पादन करने के लिए उत्पादन फ़ाइल "/lib/crt0.o" को "hello.o" और लाइब्रेरी "libc.a" से जोड़ने के परिणामस्वरूप, जो मानक खोज निर्देशिकाओं से आएगी। (की चर्चा देखें-l नीचे विकल्प।) कमांड लाइन विकल्पों में से कुछld कमांड लाइन में किसी भी बिंदु पर निर्दिष्ट किया जा सकता है। हालांकि, विकल्प जो फाइलों को संदर्भित करते हैं, जैसे कि-l या-टी, उस बिंदु पर फ़ाइल को उस बिंदु पर पढ़ा जा सकता है जिस पर ऑब्जेक्ट फ़ाइलों और अन्य फ़ाइल विकल्पों के सापेक्ष कमांड लाइन में विकल्प दिखाई देता है। किसी भिन्न तर्क के साथ गैर-फ़ाइल विकल्पों को दोहराए जाने पर या तो कोई प्रभाव नहीं होगा, या उस विकल्प के पूर्व घटनाओं (जो कमांड लाइन पर बाईं ओर हैं) को ओवरराइड करेंगे। विकल्प जिन्हें एक से अधिक बार अर्थपूर्ण रूप से निर्दिष्ट किया जा सकता है, नीचे दिए गए विवरणों में नोट किया गया है। गैर-विकल्प तर्क ऑब्जेक्ट फ़ाइलें या अभिलेखागार हैं जिन्हें एक साथ जोड़ा जाना है। वे आदेश-पंक्ति विकल्पों के साथ अनुसरण, पहले, या मिश्रित हो सकते हैं, सिवाय इसके कि ऑब्जेक्ट फ़ाइल तर्क किसी विकल्प और उसके तर्क के बीच नहीं रखा जा सकता है। आमतौर पर लिंकर को कम से कम एक ऑब्जेक्ट फ़ाइल के साथ बुलाया जाता है, लेकिन आप बाइनरी इनपुट फ़ाइलों के अन्य रूपों का उपयोग कर निर्दिष्ट कर सकते हैं-l, आर, और स्क्रिप्ट कमांड भाषा। अगर नहीं बाइनरी इनपुट फाइलों को बिल्कुल निर्दिष्ट किया गया है, लिंकर कोई आउटपुट नहीं बनाता है, और संदेश जारी करता हैकोई इनपुट फाइल नहीं. यदि लिंकर किसी ऑब्जेक्ट फ़ाइल के प्रारूप को पहचान नहीं सकता है, तो यह मान लेगा कि यह एक लिंकर स्क्रिप्ट है। इस तरह से निर्दिष्ट एक स्क्रिप्ट लिंक के लिए उपयोग की जाने वाली मुख्य लिंकर स्क्रिप्ट को बढ़ाती है (या तो डिफ़ॉल्ट लिंकर स्क्रिप्ट या उपयोग करके निर्दिष्ट एक-टी)। यह सुविधा लिंकर को किसी फ़ाइल या किसी संग्रह के रूप में दिखाई देने वाली फ़ाइल के विरुद्ध लिंक करने की अनुमति देती है, लेकिन वास्तव में केवल कुछ प्रतीक मानों को परिभाषित करती है, या अन्य वस्तुओं को लोड करने के लिए "INPUT" या "GROUP" का उपयोग करती है। ध्यान दें कि इस तरह से एक स्क्रिप्ट निर्दिष्ट करना केवल मुख्य लिंकर स्क्रिप्ट को बढ़ाता है; उपयोग-टी डिफ़ॉल्ट लिंकर स्क्रिप्ट को पूरी तरह से बदलने का विकल्प। उन विकल्पों के लिए जिनके नाम एक ही अक्षर हैं, विकल्प तर्कों को या तो व्हाइटस्पेस में हस्तक्षेप किए बिना विकल्प पत्र का पालन करना होगा, या उन्हें आवश्यक विकल्प के तुरंत बाद अलग तर्क के रूप में दिया जाना चाहिए। उन विकल्पों के लिए जिनके नाम एकाधिक अक्षर हैं, या तो एक डैश या दो विकल्प नाम से पहले हो सकते हैं; उदाहरण के लिए,-trace-प्रतीक तथा--trace-प्रतीक बराबर हैं। नोट - इस नियम के लिए एक अपवाद है। कम अक्षर 'ओ' से शुरू होने वाले एकाधिक अक्षर विकल्प केवल दो डैश से पहले किए जा सकते हैं। यह भ्रम को कम करने के लिए है-ओ विकल्प। तो उदाहरण के लिए-omagic आउटपुट फ़ाइल नाम को सेट करता हैजादू जहाँ तक--omagic आउटपुट पर NMAGIC ध्वज सेट करता है। एकाधिक-अक्षर विकल्पों के लिए तर्कों को या तो समान नाम से विकल्प नाम से अलग किया जाना चाहिए, या उन्हें आवश्यक विकल्प के तुरंत बाद अलग तर्क के रूप में दिया जाना चाहिए। उदाहरण के लिए,--trace-प्रतीक foo तथा--trace-प्रतीक = foo बराबर हैं। एकाधिक-अक्षर विकल्पों के नामों के अद्वितीय संक्षेप स्वीकार किए जाते हैं। नोट - यदि एक कंपाइलर ड्राइवर के माध्यम से लिंकर परोक्ष रूप से आह्वान किया जा रहा है (उदाहरण के लिएजीसीसी) तो सभी लिंकर कमांड लाइन विकल्पों को prefixed किया जाना चाहिए-Wl, (या जो भी विशेष कंपाइलर ड्राइवर के लिए उपयुक्त है) इस तरह: जीसीसी -ब्लूएल, - startgroup foo.o bar.o -Wl, - endgroupयह महत्वपूर्ण है, क्योंकि अन्यथा संकलक ड्राइवर प्रोग्राम चुपचाप लिंकर विकल्पों को छोड़ सकता है, जिसके परिणामस्वरूप एक खराब लिंक होता है। जीएनयू लिंकर द्वारा स्वीकार किए गए सामान्य कमांड लाइन स्विच की एक तालिका यहां दी गई है: -ए कीवर्ड यह विकल्प एचपी / यूएक्स संगतता के लिए समर्थित है। कीवर्ड तर्क तारों में से एक होना चाहिएपुरालेख, साझा, याचूक. -aarchive कार्यात्मक रूप से बराबर है-Bstatic, और अन्य दो कीवर्ड कार्यात्मक रूप से समकक्ष हैं-Bdynamic। इस विकल्प का इस्तेमाल कई बार किया जा सकता है। -ए आर्किटेक्चर --architecture = आर्किटेक्चर की वर्तमान रिलीज मेंld, यह विकल्प केवल इंटेल 960 परिवार आर्किटेक्चर के लिए उपयोगी है। उस मेंld विन्यास, द आर्किटेक्चर तर्क 960 परिवार में विशेष वास्तुकला की पहचान करता है, कुछ सुरक्षा उपायों को सक्षम करता है और संग्रह-पुस्तकालय खोज पथ को संशोधित करता है। भविष्य की रिलीजld अन्य वास्तुकला परिवारों के लिए समान कार्यक्षमता का समर्थन कर सकते हैं। बी इनपुट प्रारूप --format = इनपुट प्रारूप ld एक से अधिक प्रकार की ऑब्जेक्ट फ़ाइल का समर्थन करने के लिए कॉन्फ़िगर किया जा सकता है। यदि आपकाld इस तरह से कॉन्फ़िगर किया गया है, आप इसका उपयोग कर सकते हैंबी कमांड लाइन पर इस विकल्प का पालन करने वाले इनपुट ऑब्जेक्ट फ़ाइलों के लिए बाइनरी प्रारूप निर्दिष्ट करने का विकल्प। यहां तक कि जबld वैकल्पिक ऑब्जेक्ट प्रारूपों का समर्थन करने के लिए कॉन्फ़िगर किया गया है, आपको आमतौर पर इसे निर्दिष्ट करने की आवश्यकता नहीं हैld एक डिफ़ॉल्ट इनपुट स्वरूप के रूप में प्रत्येक मशीन पर सबसे सामान्य प्रारूप के रूप में उम्मीद करने के लिए कॉन्फ़िगर किया जाना चाहिए। इनपुट प्रारूप एक टेक्स्ट स्ट्रिंग है, बीएफडी पुस्तकालयों द्वारा समर्थित एक विशेष प्रारूप का नाम। (आप उपलब्ध बाइनरी प्रारूपों को सूचीबद्ध कर सकते हैंobjdump -i.) यदि आप किसी असामान्य बाइनरी प्रारूप वाली फ़ाइलों को लिंक कर रहे हैं तो आप इस विकल्प का उपयोग करना चाह सकते हैं। आप भी उपयोग कर सकते हैंबी प्रारूपों को स्पष्ट रूप से स्विच करने के लिए (विभिन्न प्रारूपों की ऑब्जेक्ट फ़ाइलों को लिंक करते समय), सहितबी इनपुट प्रारूप किसी विशेष प्रारूप में ऑब्जेक्ट फ़ाइलों के प्रत्येक समूह से पहले। डिफ़ॉल्ट प्रारूप पर्यावरण चर "GNUTARGET" से लिया जाता है। आप "TARGET" कमांड का उपयोग करके, स्क्रिप्ट से इनपुट प्रारूप को भी परिभाषित कर सकते हैं; -सी एमआरआई commandfile --mri स्क्रिप्ट = एमआरआई commandfile एमआरआई द्वारा उत्पादित लिंकर्स के साथ संगतता के लिए,ld जीएनयू एलडी दस्तावेज के एमआरआई संगत स्क्रिप्ट फाइल अनुभाग में वर्णित वैकल्पिक, प्रतिबंधित कमांड भाषा में लिखी गई स्क्रिप्ट फ़ाइलों को स्वीकार करता है। विकल्प के साथ एमआरआई स्क्रिप्ट फाइलों का परिचय दें-सी; उपयोग-टी सामान्य उद्देश्य में लिखे गए लिंकर स्क्रिप्ट को चलाने का विकल्पld भाषा का अंकन। अगर एमआरआई cmdfile अस्तित्व में नहीं है,ldकिसी भी द्वारा निर्दिष्ट निर्देशिका में इसकी तलाश है-एल विकल्प। -d -DC -dp ये तीन विकल्प बराबर हैं; कई लिंक अन्य लिंकर्स के साथ संगतता के लिए समर्थित हैं। वे एक सामान्य स्थान पर निर्दिष्ट स्थान को निर्दिष्ट करते हैं, भले ही एक स्थानापन्न आउटपुट फ़ाइल निर्दिष्ट हो-r)। स्क्रिप्ट कमांड "FORCE_COMMON_ALLOCATION" का एक ही प्रभाव है। -e प्रवेश --entry = प्रवेश उपयोग प्रवेश डिफ़ॉल्ट प्रविष्टि बिंदु के बजाए, आपके प्रोग्राम के निष्पादन के लिए स्पष्ट प्रतीक के रूप में। अगर नाम का कोई प्रतीक नहीं है प्रवेश , लिंकर पार्स करने की कोशिश करेगा प्रवेश एक संख्या के रूप में, और प्रवेश पते के रूप में इसका उपयोग करें (संख्या 10 में व्याख्या की जाएगी; आप एक अग्रणी का उपयोग कर सकते हैं0x आधार 16 के लिए, या एक अग्रणी0 आधार 8 के लिए)। -E --export-गतिशील एक गतिशील रूप से जुड़े निष्पादन योग्य बनाते समय, गतिशील प्रतीक तालिका में सभी प्रतीकों को जोड़ें। गतिशील प्रतीक तालिका प्रतीकों का सेट है जो गतिशील वस्तुओं से रन टाइम पर दिखाई दे रही हैं। यदि आप इस विकल्प का उपयोग नहीं करते हैं, तो गतिशील प्रतीक तालिका में आमतौर पर केवल उन प्रतीकों को शामिल किया जाएगा जिन्हें लिंक में उल्लिखित कुछ गतिशील वस्तु द्वारा संदर्भित किया जाता है। यदि आप किसी गतिशील ऑब्जेक्ट को लोड करने के लिए "dlopen" का उपयोग करते हैं, जिसे किसी अन्य गतिशील ऑब्जेक्ट की बजाय प्रोग्राम द्वारा परिभाषित प्रतीकों पर वापस संदर्भित करने की आवश्यकता होती है, तो प्रोग्राम को लिंक करते समय आपको शायद इस विकल्प का उपयोग करने की आवश्यकता होगी। यदि आप आउटपुट प्रारूप का समर्थन करते हैं तो गतिशील प्रतीक तालिका में कौन से प्रतीकों को जोड़ा जाना चाहिए, यह नियंत्रित करने के लिए आप संस्करण स्क्रिप्ट का भी उपयोग कर सकते हैं। का विवरण देखें--version स्क्रिप्ट @ में रेफरी {version}। -EB बड़े एंडियन वस्तुओं को लिंक करें। यह डिफ़ॉल्ट आउटपुट प्रारूप को प्रभावित करता है। हैं El छोटी-छोटी वस्तुएं लिंक करें। यह डिफ़ॉल्ट आउटपुट प्रारूप को प्रभावित करता है। -f --auxiliary नाम ईएलएफ साझा ऑब्जेक्ट बनाते समय, आंतरिक DT_AUXILIARY फ़ील्ड निर्दिष्ट नाम पर सेट करें। यह गतिशील लिंकर को बताता है कि साझा ऑब्जेक्ट की प्रतीक तालिका को साझा ऑब्जेक्ट की प्रतीक तालिका पर एक सहायक फ़िल्टर के रूप में उपयोग किया जाना चाहिए नाम . यदि आप बाद में इस फ़िल्टर ऑब्जेक्ट के विरुद्ध किसी प्रोग्राम को लिंक करते हैं, तो, जब आप प्रोग्राम चलाते हैं, तो गतिशील लिंकर DT_AUXILIARY फ़ील्ड देखेगा। यदि गतिशील लिंकर फ़िल्टर ऑब्जेक्ट से किसी भी प्रतीक को हल करता है, तो यह पहले जांच करेगा कि साझा ऑब्जेक्ट में कोई परिभाषा है या नहीं नाम । यदि कोई है, तो इसका उपयोग फ़िल्टर ऑब्जेक्ट में परिभाषा के बजाय किया जाएगा। साझा वस्तु नाम अस्तित्व की जरूरत नहीं है। इस प्रकार साझा वस्तु नाम शायद कुछ कार्यों के वैकल्पिक कार्यान्वयन के लिए उपयोग किया जा सकता है, शायद डिबगिंग के लिए या मशीन विशिष्ट प्रदर्शन के लिए। यह विकल्प एक से अधिक बार निर्दिष्ट किया जा सकता है। DT_AUXILIARY प्रविष्टियां उस क्रम में बनाई जाएंगी जिसमें वे कमांड लाइन पर दिखाई देते हैं। एफ नाम --filter नाम ईएलएफ साझा ऑब्जेक्ट बनाते समय, आंतरिक DT_FILTER फ़ील्ड को निर्दिष्ट नाम पर सेट करें। यह गतिशील लिंकर को बताता है कि साझा ऑब्जेक्ट की प्रतीक तालिका जिसे साझा किया जा रहा है उसे साझा ऑब्जेक्ट की प्रतीक तालिका पर फ़िल्टर के रूप में उपयोग किया जाना चाहिए नाम . यदि आप बाद में इस फ़िल्टर ऑब्जेक्ट के विरुद्ध किसी प्रोग्राम को लिंक करते हैं, तो, जब आप प्रोग्राम चलाते हैं, तो गतिशील लिंकर DT_FILTER फ़ील्ड को देखेगा। डायनामिक लिंकर सामान्य रूप से फिल्टर ऑब्जेक्ट की प्रतीक तालिका के अनुसार प्रतीकों को हल करेगा, लेकिन यह वास्तव में साझा ऑब्जेक्ट में मिली परिभाषाओं से लिंक होगा नाम । इस प्रकार फ़िल्टर ऑब्जेक्ट का उपयोग ऑब्जेक्ट द्वारा प्रदान किए गए प्रतीकों का सबसेट चुनने के लिए किया जा सकता है नाम . कुछ पुराने लिंकर्स ने इसका इस्तेमाल कियाएफ इनपुट और आउटपुट ऑब्जेक्ट फ़ाइलों दोनों के लिए ऑब्जेक्ट-फ़ाइल प्रारूप निर्दिष्ट करने के लिए एक संकलन टूलचेन में विकल्प। इस उद्देश्य के लिए जीएनयू लिंकर अन्य तंत्र का उपयोग करता है:बी, --format, --oformat विकल्प, लिंकर स्क्रिप्ट में "TARGET" कमांड, और "GNUTARGET" पर्यावरण चर। जीएनयू लिंकर अनदेखा करेगाएफ एक ईएलएफ साझा वस्तु नहीं बनाते समय विकल्प। -fini नाम ईएलएफ निष्पादन योग्य या साझा ऑब्जेक्ट बनाते समय, निष्पादन योग्य या साझा ऑब्जेक्ट को अनलोड किए जाने पर NAME को कॉल करें, DT_FINI को फ़ंक्शन के पते पर सेट करके। डिफ़ॉल्ट रूप से, लिंकर कॉल करने के लिए फ़ंक्शन के रूप में "_fini" का उपयोग करता है। जी अवहेलना करना। अन्य उपकरणों के साथ संगतता के लिए प्रदान की गई। जी मूल्य --gpsize = मूल्य जीपी रजिस्टर का उपयोग करके ऑप्टिमाइज़ किए जाने के लिए ऑब्जेक्ट्स का अधिकतम आकार सेट करें आकार । यह ऑब्जेक्ट फ़ाइल स्वरूपों के लिए केवल सार्थक है जैसे कि एमआईपीएस ईसीओएफएफ जो विभिन्न वर्गों में बड़ी और छोटी वस्तुओं को रखने का समर्थन करता है। इसे अन्य ऑब्जेक्ट फ़ाइल स्वरूपों के लिए अनदेखा किया जाता है। -h नाम -soname = नाम ईएलएफ साझा ऑब्जेक्ट बनाते समय, आंतरिक DT_SONAME फ़ील्ड को निर्दिष्ट नाम पर सेट करें। जब एक निष्पादन योग्य किसी साझा ऑब्जेक्ट से जुड़ा होता है जिसमें DT_SONAME फ़ील्ड होता है, तो जब निष्पादन योग्य चलाया जाता है तो गतिशील लिंकर लिंकर को दिए गए फ़ाइल नाम का उपयोग करने के बजाय DT_SONAME फ़ील्ड द्वारा निर्दिष्ट साझा ऑब्जेक्ट को लोड करने का प्रयास करेगा। -मैं एक वृद्धिशील लिंक करें (विकल्प के समान-r). -इस में नाम ईएलएफ निष्पादन योग्य या साझा ऑब्जेक्ट बनाते समय, कार्य के पते पर DT_INIT सेट करके निष्पादन योग्य या साझा ऑब्जेक्ट लोड होने पर NAME को कॉल करें। डिफ़ॉल्ट रूप से, लिंकर कॉल करने के लिए फ़ंक्शन के रूप में "_init" का उपयोग करता है। -l पुरालेख --library = पुरालेख संग्रह फ़ाइल जोड़ें पुरालेख लिंक करने के लिए फाइलों की सूची में। इस विकल्प का इस्तेमाल कई बार किया जा सकता है।ld प्रत्येक के लिए "libarchive.a" की घटनाओं के लिए अपनी पथ सूची खोजेगा पुरालेख निर्दिष्ट। उन सिस्टम पर जो साझा पुस्तकालयों का समर्थन करते हैं,ld ".a" के अलावा एक्सटेंशन वाले पुस्तकालयों की खोज भी कर सकते हैं। विशेष रूप से, ईएलएफ और सनोस सिस्टम पर,ld ".a" के विस्तार के साथ किसी के लिए खोज करने से पहले ".so" के विस्तार के साथ लाइब्रेरी के लिए निर्देशिका खोजेगा। सम्मेलन से, एक ".so" एक्सटेंशन साझा लाइब्रेरी इंगित करता है। लिंकर केवल एक बार एक संग्रह को खोजेगा, उस स्थान पर जहां यह कमांड लाइन पर निर्दिष्ट है। यदि संग्रह किसी ऐसे ऑब्जेक्ट को परिभाषित करता है जो कमांड लाइन पर संग्रह से पहले दिखाई देने वाली किसी ऑब्जेक्ट में अपरिभाषित था, तो लिंकर में संग्रह से उचित फ़ाइल (ओं) शामिल होगी। हालांकि, कमांड लाइन पर बाद में दिखाई देने वाली ऑब्जेक्ट में एक अनिर्धारित प्रतीक लिंकर को संग्रह को फिर से खोजने का कारण नहीं बनता है। देखें-( लिंकर को कई बार अभिलेखागार खोजने के लिए मजबूर करने के तरीके के लिए विकल्प। आप कमांड लाइन पर एक ही संग्रह को कई बार सूचीबद्ध कर सकते हैं। इस प्रकार की संग्रह खोज यूनिक्स लिंकर्स के लिए मानक है। हालांकि, अगर आप उपयोग कर रहे हैंld ऑनएक्स, ध्यान दें कि यह AIX लिंकर के व्यवहार से अलग है। -एल searchdir --library-पथ = searchdir पथ जोड़ें searchdir पथ की सूची मेंld संग्रह पुस्तकालयों की खोज करेगा औरld नियंत्रण स्क्रिप्ट्स। आप इस विकल्प का कई बार उपयोग कर सकते हैं। निर्देशिकाओं को क्रम में खोजा जाता है जिसमें वे कमांड लाइन पर निर्दिष्ट होते हैं। कमांड लाइन पर निर्दिष्ट निर्देशिकाओं को डिफ़ॉल्ट निर्देशिका से पहले खोजा जाता है। सब-एल विकल्प सभी पर लागू होते हैं-l विकल्पों के बावजूद, विकल्प जिसमें प्रकट होते हैं। अगर searchdir "=" से शुरू होता है, फिर "=" को प्रतिस्थापित किया जाएगा sysroot उपसर्ग , लिंकर कॉन्फ़िगर किए जाने पर निर्दिष्ट पथ। पथों का डिफ़ॉल्ट सेट खोजा गया (बिना निर्दिष्ट किए-एल) किस इम्यूलेशन मोड पर निर्भर करता हैld उपयोग कर रहा है, और कुछ मामलों में भी यह कैसे कॉन्फ़िगर किया गया था। पथ को "SEARCH_DIR" कमांड के साथ एक लिंक स्क्रिप्ट में भी निर्दिष्ट किया जा सकता है। इस तरह निर्दिष्ट निर्देशिकाओं को उस बिंदु पर खोजा जाता है जिसमें लिंकर स्क्रिप्ट कमांड लाइन में दिखाई देती है। -m अनुकरण अनुकरण करें अनुकरण लिंकर। आप उपलब्ध एम्यूलेशन के साथ सूचीबद्ध कर सकते हैं--verbose या-वीविकल्प। अगर-m विकल्प का उपयोग नहीं किया जाता है, अगर यह परिभाषित किया गया है, तो इम्यूलेशन "LDEMULATION" पर्यावरण चर से लिया जाता है। अन्यथा, डिफ़ॉल्ट अनुकरण इस बात पर निर्भर करता है कि लिंकर को कैसे कॉन्फ़िगर किया गया था। -M --print-नक्शा मानक आउटपुट में एक लिंक मैप प्रिंट करें। एक लिंक नक्शा निम्नलिखित के साथ लिंक के बारे में जानकारी प्रदान करता है: * जहां वस्तु फ़ाइलों और प्रतीकों को स्मृति में मैप किया जाता है। * कितने आम प्रतीक आवंटित किए जाते हैं। * सभी संग्रह सदस्यों को लिंक में शामिल किया गया था, जिसमें प्रतीक का उल्लेख किया गया था जिससे संग्रह सदस्य को लाया जा सकता था। -n --nmagic खंडों के पेज संरेखण को बंद करें, और यदि संभव हो तो आउटपुट को "NMAGIC" के रूप में चिह्नित करें। एन --omagic पाठ और डेटा खंडों को पठनीय और लिखने योग्य सेट करें। साथ ही, डेटा सेगमेंट को पेज-संरेखित न करें, और साझा लाइब्रेरीज़ के विरुद्ध लिंकिंग अक्षम करें। यदि आउटपुट प्रारूप यूनिक्स स्टाइल जादू संख्या का समर्थन करता है, तो आउटपुट को "ओमैजिक" के रूप में चिह्नित करें। --no-omagic यह विकल्प के अधिकांश प्रभावों को अस्वीकार करता हैएन विकल्प। यह टेक्स्ट सेक्शन को केवल पढ़ने के लिए सेट करता है, और डेटा सेगमेंट को पृष्ठ-संरेखित करने के लिए मजबूर करता है। नोट - यह विकल्प साझा पुस्तकालयों के खिलाफ लिंकिंग को सक्षम नहीं करता है। उपयोग-Bdynamic इसके लिए। -ओ उत्पादन --output = उत्पादन उपयोग उत्पादन द्वारा उत्पादित कार्यक्रम के लिए नाम के रूप मेंld; यदि यह विकल्प निर्दिष्ट नहीं है, तो नाम a.out डिफ़ॉल्ट रूप से प्रयोग किया जाता है। स्क्रिप्ट कमांड "OUTPUT" आउटपुट फ़ाइल नाम भी निर्दिष्ट कर सकता है। -O स्तर अगर स्तर शून्य से अधिक संख्यात्मक मान हैld आउटपुट अनुकूलित करता है। इसमें काफी समय लग सकता है और इसलिए शायद अंतिम बाइनरी के लिए ही सक्षम होना चाहिए। -q --emit-relocs पूरी तरह से जुड़े exececutables में स्थानांतरण अनुभाग और सामग्री छोड़ दें। निष्पादन योग्यता के सही संशोधन करने के लिए पोस्ट लिंक विश्लेषण और अनुकूलन उपकरण को इस जानकारी की आवश्यकता हो सकती है। इसके परिणामस्वरूप बड़े निष्पादन योग्य होते हैं। यह विकल्प वर्तमान में केवल ईएलएफ प्लेटफॉर्म पर समर्थित है। -r --relocateable स्थानांतरित करने योग्य आउटपुट उत्पन्न करें --- यानी, आउटपुट फ़ाइल जेनरेट करें जो बदले में इनपुट के रूप में कार्य कर सकती हैld। इसे अक्सर बुलाया जाता है आंशिक लिंकिंग । एक दुष्प्रभाव के रूप में, मानक यूनिक्स जादू संख्याओं का समर्थन करने वाले वातावरण में, यह विकल्प आउटपुट फ़ाइल के जादू संख्या को "ओमैजिक" में भी सेट करता है। यदि यह विकल्प निर्दिष्ट नहीं है, तो एक पूर्ण फ़ाइल बनाई जाती है। सी ++ प्रोग्राम को जोड़ने पर, यह विकल्प नहीं होगा रचनाकारों के संदर्भ हल करें; ऐसा करने के लिए, उपयोग करें-Ur. जब इनपुट फ़ाइल में आउटपुट फ़ाइल के समान प्रारूप नहीं होता है, तो आंशिक लिंकिंग केवल तभी समर्थित होती है जब उस इनपुट फ़ाइल में कोई स्थानान्तरण न हो। विभिन्न आउटपुट प्रारूपों में और प्रतिबंध हो सकते हैं; उदाहरण के लिए कुछ "a.out"-आधारित प्रारूप अन्य प्रारूपों में इनपुट फ़ाइलों के साथ आंशिक लिंकिंग का समर्थन नहीं करते हैं। यह विकल्प वही काम करता है-मैं. आर फ़ाइल का नाम --just-प्रतीकों = फ़ाइल का नाम प्रतीक नाम और उनके पते पढ़ें फ़ाइल का नाम , लेकिन इसे स्थानांतरित न करें या इसे आउटपुट में शामिल न करें। यह आपकी आउटपुट फ़ाइल को अन्य कार्यक्रमों में परिभाषित स्मृति के पूर्ण स्थानों पर प्रतीकात्मक रूप से संदर्भित करने की अनुमति देता है। आप इस विकल्प का एक से अधिक बार उपयोग कर सकते हैं। अन्य ईएलएफ लिंकर्स के साथ संगतता के लिए, यदिआर फ़ाइल नाम के बजाए एक निर्देशिका नाम के बाद विकल्प का पालन किया जाता है, इसे माना जाता है-rpath विकल्प। -s --strip-सब आउटपुट फ़ाइल से सभी प्रतीकों की जानकारी छोड़ दें। -S --strip-डिबग आउटपुट फ़ाइल से डीबगर प्रतीक जानकारी (लेकिन सभी प्रतीकों नहीं) को छोड़ दें। आयकर --trace इनपुट फ़ाइलों के नामों को प्रिंट करेंld उन्हें संसाधित करता है। -टी स्क्रिप्ट फाइल --script = स्क्रिप्ट फाइल उपयोग स्क्रिप्ट फाइल लिंकर स्क्रिप्ट के रूप में। यह स्क्रिप्ट बदलता हैldडिफ़ॉल्ट लिंकर स्क्रिप्ट (इसे जोड़ने के बजाय), तो commandfile आउटपुट फ़ाइल का वर्णन करने के लिए आवश्यक सब कुछ निर्दिष्ट करना होगा। अगर स्क्रिप्ट फाइल वर्तमान निर्देशिका में मौजूद नहीं है, "ld" इसे किसी भी पूर्ववर्ती द्वारा निर्दिष्ट निर्देशिकाओं में ढूंढता है-एल विकल्प। विभिन्न-टी विकल्प जमा -u प्रतीक --undefined = प्रतीक बल प्रतीक आउटपुट फ़ाइल में एक अपरिभाषित प्रतीक के रूप में दर्ज किया जाना है। ऐसा करने से, उदाहरण के लिए, मानक पुस्तकालयों से अतिरिक्त मॉड्यूल को जोड़ने का ट्रिगर हो सकता है।-u अतिरिक्त अपरिभाषित प्रतीकों को दर्ज करने के लिए अलग-अलग विकल्प तर्कों के साथ दोहराया जा सकता है। यह विकल्प "EXTERN" लिंकर स्क्रिप्ट कमांड के बराबर है। -Ur सी ++ कार्यक्रमों के अलावा किसी अन्य चीज़ के लिए, यह विकल्प बराबर है-r: यह स्थानापन्न आउटपुट उत्पन्न करता है --- यानी, एक आउटपुट फ़ाइल जो बदले में इनपुट के रूप में कार्य कर सकती हैld। सी ++ कार्यक्रमों को जोड़ने पर,-Ur कर देता है रचनाकारों के विपरीत संदर्भ, विपरीत-r। यह उपयोग करने के लिए काम नहीं करता है-Ur उन फाइलों पर जो स्वयं से जुड़े थे-Ur; एक बार कन्स्ट्रक्टर टेबल बनाया गया है, इसे इसमें जोड़ा नहीं जा सकता है। उपयोग-Ur केवल अंतिम आंशिक लिंक के लिए, और-r दूसरों के लिए। --unique = अनुभाग प्रत्येक इनपुट अनुभाग मिलान के लिए एक अलग आउटपुट अनुभाग बनाता है अनुभाग , या वैकल्पिक वाइल्डकार्ड अनुभाग प्रत्येक अनाथ इनपुट खंड के लिए तर्क गुम है। एक अनाथ अनुभाग एक विशेष रूप से एक लिंकर स्क्रिप्ट में उल्लिखित नहीं है। आप आदेश विकल्प पर कई बार इस विकल्प का उपयोग कर सकते हैं; यह एक ही नाम के साथ इनपुट सेक्शन के सामान्य विलय को रोकता है, एक लिंकर स्क्रिप्ट में आउटपुट सेक्शन असाइनमेंट ओवरराइड करता है। -v --version -वी के लिए संस्करण संख्या प्रदर्शित करेंld।-वी विकल्प समर्थित इम्यूलेशन भी सूचीबद्ध करता है। -एक्स --discard-सब सभी स्थानीय प्रतीकों को हटाएं। -एक्स --discard-स्थानीय लोगों सभी अस्थायी स्थानीय प्रतीकों को हटाएं। अधिकांश लक्ष्यों के लिए, यह सभी स्थानीय प्रतीक हैं जिनके नाम शुरू होते हैंएल. -y प्रतीक --trace-प्रतीक = प्रतीक जिसमें प्रत्येक लिंक की गई फ़ाइल का नाम प्रिंट करें प्रतीक प्रकट होता है। यह विकल्प किसी भी समय दिया जा सकता है। कई प्रणालियों पर अंडरस्कोर को प्रीपेड करना आवश्यक है। यह विकल्प तब उपयोगी होता है जब आपके लिंक में एक अनिर्धारित प्रतीक होता है लेकिन यह नहीं पता कि संदर्भ कहां से आ रहा है। -Y पथ जोड़ना पथ डिफ़ॉल्ट लाइब्रेरी खोज पथ पर। Solaris संगतता के लिए यह विकल्प मौजूद है। -z कीवर्ड मान्यता प्राप्त कीवर्ड "initfirst", "interposefirst", "interfl", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "अब", "मूल", "combreloc", "nocombreloc" और "nocopyreloc" हैं "। Solaris संगतता के लिए अन्य खोजशब्दों को नजरअंदाज कर दिया जाता है। "initfirst" ऑब्जेक्ट को पहले किसी अन्य ऑब्जेक्ट से पहले रनटाइम पर प्रारंभ करने के लिए चिह्नित करता है।"इंटरैप" ऑब्जेक्ट को चिह्नित करता है कि इसकी प्रतीक तालिका सभी प्रतीकों से पहले इंटरपोज़ करती है लेकिन प्राथमिक निष्पादन योग्य। "loadfltr" ऑब्जेक्ट को चिह्नित करता है कि इसकी फाइलों को रनटाइम पर तुरंत संसाधित किया जा सकता है। "nodefaultlib" ऑब्जेक्ट को चिह्नित करता है कि इस ऑब्जेक्ट की निर्भरताओं की खोज अनदेखा करेगी कोई डिफ़ॉल्ट लाइब्रेरी खोज पथ। "nodelete" अंक को रनटाइम पर अनलोड नहीं किया जाना चाहिए। "नोडलोपेन" ऑब्जेक्ट को "dlopen" के लिए उपलब्ध नहीं है। "nodump" अंक ऑब्जेक्ट को "dldump" द्वारा नहीं छोड़ा जा सकता है। "अब" ऑब्जेक्ट को गैर-आलसी रनटाइम बाध्यकारी के साथ चिह्नित करता है। "मूल" अंक में ऑब्जेक्ट में $ मूल शामिल हो सकता है। "defs" अपरिभाषित प्रतीकों को अस्वीकार करता है। "muldefs" कई परिभाषाओं की अनुमति देता है। "combreloc" कई रिलाक अनुभागों को जोड़ती है और गतिशील प्रतीक लुकअप कैशिंग को संभव बनाने के लिए उन्हें टाइप करती है। "nocombreloc" संयोजन एकाधिक एकाधिक खंड खंड अक्षम करता है। "nocopyreloc" कॉपी relocs के उत्पादन को अक्षम करता है। -( अभिलेखागार -) --start-समूह अभिलेखागार --end-समूह अभिलेखागार संग्रह फ़ाइलों की एक सूची होना चाहिए। वे या तो स्पष्ट फ़ाइल नाम हो सकते हैं, या-lविकल्प। निर्दिष्ट अभिलेखागार बार-बार खोजे जाते हैं जब तक कि कोई नया अपरिभाषित संदर्भ नहीं बनाया जाता है। आम तौर पर, एक संग्रह केवल एक बार खोजा जाता है ताकि आदेश कमांड पर निर्दिष्ट किया जा सके। यदि कमांड लाइन पर बाद में दिखाई देने वाले संग्रह में ऑब्जेक्ट द्वारा निर्दिष्ट एक अपरिभाषित प्रतीक को हल करने के लिए उस संग्रह में एक प्रतीक की आवश्यकता है, तो लिंकर उस संदर्भ को हल करने में सक्षम नहीं होगा। अभिलेखागार को समूहीकृत करके, सभी को बार-बार खोजा जाता है जब तक कि सभी संभावित संदर्भ हल नहीं हो जाते। इस विकल्प का उपयोग करना एक महत्वपूर्ण प्रदर्शन लागत है। यह केवल तभी उपयोग करना सबसे अच्छा है जब दो या दो से अधिक अभिलेखागार के बीच अपरिहार्य परिपत्र संदर्भ हों। --accept-अज्ञात-इनपुट-चाप --no-स्वीकार-अज्ञात-इनपुट-चाप लिंकर को उन इनपुट फ़ाइलों को स्वीकार करने के लिए कहता है जिनकी वास्तुकला को पहचाना नहीं जा सकता है। धारणा यह है कि उपयोगकर्ता जानता है कि वे क्या कर रहे हैं और जानबूझकर इन अज्ञात इनपुट फ़ाइलों में लिंक करना चाहते हैं। रिलीज 2.14 से पहले यह लिंकर का डिफ़ॉल्ट व्यवहार था। रिलीज 2.14 के बाद से डिफ़ॉल्ट व्यवहार ऐसी इनपुट फ़ाइलों को अस्वीकार करना है, और इसलिए--accept-अज्ञात-इनपुट-चाप पुराने