अंग्रेज़ीफ्रेंचस्पेनिश

सर्वर चलाएं | Ubuntu > | Fedora > |


ऑनवर्क्स फ़ेविकॉन

h8300-hms-ld - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में h8300-एचएमएस-एलडी चलाएं।

यह आदेश h8300-hms-ld है जिसे हमारे कई मुफ़्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


ld - LD का उपयोग करना, GNU लिंकर

SYNOPSIS


एलडी [विकल्पों] objfile ...

वर्णन


ld कई ऑब्जेक्ट और संग्रह फ़ाइलों को जोड़ती है, उनके डेटा को स्थानांतरित करती है और प्रतीक को जोड़ती है
संदर्भ। आमतौर पर किसी प्रोग्राम को कंपाइल करने का अंतिम चरण रन करना होता है ld.

ld एटी एंड टी के लिंक एडिटर के सुपरसेट में लिखी गई लिंकर कमांड लैंग्वेज फाइलों को स्वीकार करता है
लिंकिंग प्रक्रिया पर स्पष्ट और पूर्ण नियंत्रण प्रदान करने के लिए कमांड लैंग्वेज सिंटैक्स।

यह मैन पेज कमांड भाषा का वर्णन नहीं करता है; देखें ld "जानकारी" में प्रविष्टि, या
मैनुअल एलडी: जीएनयू लिंकर, कमांड भाषा और अन्य पहलुओं पर पूर्ण विवरण के लिए
जीएनयू लिंकर का।

के इस संस्करण ld ऑब्जेक्ट फाइलों पर काम करने के लिए सामान्य प्रयोजन बीएफडी पुस्तकालयों का उपयोग करता है। इस
की अनुमति देता है ld ऑब्जेक्ट फ़ाइलों को कई अलग-अलग स्वरूपों में पढ़ने, संयोजित करने और लिखने के लिए --- के लिए
उदाहरण, सीओएफएफ या "ए.आउट"। किसी भी उत्पादन के लिए विभिन्न प्रारूपों को एक साथ जोड़ा जा सकता है
उपलब्ध प्रकार की वस्तु फ़ाइल।

इसके लचीलेपन के अलावा, GNU लिंकर प्रदान करने में अन्य लिंकर्स की तुलना में अधिक सहायक है
नैदानिक ​​जानकारी। कई लिंकर्स एक का सामना करने पर तुरंत निष्पादन छोड़ देते हैं
त्रुटि; जब भी संभव, ld निष्पादित करना जारी रखता है, जिससे आप अन्य त्रुटियों की पहचान कर सकते हैं
(या, कुछ मामलों में, त्रुटि के बावजूद आउटपुट फ़ाइल प्राप्त करने के लिए)।

जीएनयू लिंकर ld स्थितियों की एक विस्तृत श्रृंखला को कवर करने के लिए है, और संगत होने के लिए है
अन्य लिंकर्स के साथ जितना संभव हो सके। नतीजतन, आपके पास इसे नियंत्रित करने के लिए कई विकल्प हैं
व्यवहार.

विकल्प


लिंकर कमांड-लाइन विकल्पों के ढेरों का समर्थन करता है, लेकिन वास्तविक व्यवहार में उनमें से कुछ ही हैं
किसी विशेष संदर्भ में उपयोग किया जाता है। उदाहरण के लिए, का बार-बार उपयोग ld लिंक करना है
मानक, समर्थित यूनिक्स सिस्टम पर मानक यूनिक्स ऑब्जेक्ट फ़ाइलें। ऐसी व्यवस्था पर,
एक फ़ाइल "hello.o" लिंक करें:

मैं करता हूं /lib/crt0.o hello.o -lc

इससे पता ld नामक फ़ाइल बनाने के लिए उत्पादन फ़ाइल को जोड़ने के परिणामस्वरूप
"/lib/crt0.o" "hello.o" और पुस्तकालय "libc.a" के साथ, जो मानक से आएगा
निर्देशिका खोजें। (इसकी चर्चा देखें -l नीचे विकल्प।)

करने के लिए कमांड-लाइन विकल्पों में से कुछ ld कमांड लाइन में किसी भी बिंदु पर निर्दिष्ट किया जा सकता है।
हालांकि, विकल्प जो फाइलों को संदर्भित करते हैं, जैसे कि -l or -T, फ़ाइल को पढ़ने के लिए कारण
वह बिंदु जिस पर ऑब्जेक्ट फ़ाइलों के सापेक्ष कमांड लाइन में विकल्प दिखाई देता है और
अन्य फ़ाइल विकल्प। एक अलग तर्क के साथ गैर-फ़ाइल विकल्पों को दोहराने से या तो होगा
कोई और प्रभाव नहीं, या पिछली घटनाओं को ओवरराइड करें (जो आगे कमांड पर बाईं ओर हैं
लाइन) उस विकल्प का। विकल्प जो अर्थपूर्ण रूप से एक से अधिक बार निर्दिष्ट किए जा सकते हैं वे हैं
नीचे दिए गए विवरण में उल्लेख किया गया है।

गैर-विकल्प तर्क ऑब्जेक्ट फ़ाइलें या संग्रह हैं जिन्हें एक साथ जोड़ा जाना है। वे
एक ऑब्जेक्ट फ़ाइल को छोड़कर, कमांड-लाइन विकल्पों के साथ अनुसरण, पूर्ववर्ती, या मिश्रित हो सकता है
तर्क को एक विकल्प और उसके तर्क के बीच नहीं रखा जा सकता है।

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

यदि लिंकर किसी ऑब्जेक्ट फ़ाइल के प्रारूप को नहीं पहचान सकता है, तो यह मान लेगा कि यह एक है
लिंकर स्क्रिप्ट। इस तरह से निर्दिष्ट एक स्क्रिप्ट मुख्य लिंकर स्क्रिप्ट को बढ़ाती है जिसका उपयोग किया जाता है
लिंक (या तो डिफ़ॉल्ट लिंकर स्क्रिप्ट या उपयोग करके निर्दिष्ट किया गया) -T)। इस
सुविधा लिंकर को एक फ़ाइल के खिलाफ लिंक करने की अनुमति देती है जो एक वस्तु या एक प्रतीत होती है
संग्रह, लेकिन वास्तव में केवल कुछ प्रतीक मूल्यों को परिभाषित करता है, या "इनपुट" या "ग्रुप" का उपयोग करता है
अन्य वस्तुओं को लोड करें। ध्यान दें कि इस तरह से एक स्क्रिप्ट निर्दिष्ट करना केवल मुख्य को बढ़ाता है
लिंकर स्क्रिप्ट; उपयोग -T डिफ़ॉल्ट लिंकर स्क्रिप्ट को पूरी तरह से बदलने का विकल्प।

उन विकल्पों के लिए जिनके नाम एक ही अक्षर हैं, विकल्प तर्कों को या तो अनुसरण करना चाहिए
व्हाइटस्पेस में हस्तक्षेप किए बिना विकल्प पत्र, या अलग तर्क के रूप में दिया जाना चाहिए
उस विकल्प का तुरंत पालन करें जिसके लिए उनकी आवश्यकता है।

उन विकल्पों के लिए जिनके नाम एक से अधिक अक्षर हैं, या तो एक डैश या दो से पहले हो सकते हैं
विकल्प का नाम; उदाहरण के लिए, -ट्रेस-प्रतीक और --ट्रेस-प्रतीक समकक्ष हैं। नोट --- वहाँ
इस नियम का एक अपवाद है। एक से अधिक अक्षर विकल्प जो छोटे अक्षर 'o' से शुरू होते हैं
केवल दो डैश से पहले किया जा सकता है। यह भ्रम को कम करने के लिए है -o विकल्प। इसलिए
उदाहरण के लिये जादू आउटपुट फ़ाइल का नाम सेट करता है जादू जहाँ तक --ओमैजिक NMAGIC . सेट करता है
आउटपुट पर झंडा।

बहु-अक्षर विकल्पों के तर्क या तो विकल्प नाम से a . द्वारा अलग किए जाने चाहिए
बराबर का चिह्न, या विकल्प के तुरंत बाद अलग तर्क के रूप में दिया जाना चाहिए कि
उनकी आवश्यकता है। उदाहरण के लिए, --ट्रेस-प्रतीक foo और --ट्रेस-प्रतीक = फू बराबर हैं।
बहु-अक्षर विकल्पों के नामों के अद्वितीय संक्षिप्ताक्षर स्वीकार किए जाते हैं।

नोट --- यदि लिंकर को अप्रत्यक्ष रूप से एक कंपाइलर ड्राइवर के माध्यम से बुलाया जा रहा है (उदाहरण के लिए) जीसीसी) फिर
सभी लिंकर कमांड लाइन विकल्पों को उपसर्ग किया जाना चाहिए -डब्ल्यूएल, (या जो भी उचित हो
विशेष कंपाइलर ड्राइवर के लिए) इस तरह:

gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup

यह महत्वपूर्ण है, क्योंकि अन्यथा कंपाइलर ड्राइवर प्रोग्राम चुपचाप छोड़ सकता है
लिंकर विकल्प, जिसके परिणामस्वरूप एक खराब लिंक होता है।

जीएनयू लिंकर द्वारा स्वीकृत सामान्य कमांड लाइन स्विच की एक तालिका यहां दी गई है:

-aकीवर्ड
यह विकल्प HP/UX संगतता के लिए समर्थित है। NS कीवर्ड तर्क इनमें से एक होना चाहिए
तार संग्रह, साझाया, चूक. -आर्काइव कार्यात्मक रूप से बराबर है
-बस्टेटिक, और अन्य दो कीवर्ड कार्यात्मक रूप से . के बराबर हैं -बडायनामिक। इस
विकल्प का उपयोग कितनी भी बार किया जा सकता है।

-Aस्थापत्य
--वास्तुकला=स्थापत्य
की वर्तमान रिलीज में ld, यह विकल्प केवल Intel 960 परिवार के लिए उपयोगी है
वास्तुकला। में वह ld विन्यास, स्थापत्य तर्क की पहचान करता है
960 परिवार में विशेष वास्तुकला, कुछ सुरक्षा उपायों को सक्षम करना और संशोधित करना
संग्रह-पुस्तकालय खोज पथ।

भविष्य की रिलीज़ ld अन्य आर्किटेक्चर के लिए समान कार्यक्षमता का समर्थन कर सकता है
परिवारों।

-b इनपुट प्रारूप
--format=इनपुट प्रारूप
ld एक से अधिक प्रकार की ऑब्जेक्ट फ़ाइल का समर्थन करने के लिए कॉन्फ़िगर किया जा सकता है। यदि तुम्हारा ld is
इस तरह से कॉन्फ़िगर किया गया है, आप इसका उपयोग कर सकते हैं -b इनपुट के लिए बाइनरी प्रारूप निर्दिष्ट करने का विकल्प
ऑब्जेक्ट फ़ाइलें जो कमांड लाइन पर इस विकल्प का पालन करती हैं। यहां तक ​​कि जब ld कॉन्फ़िगर किया गया है
वैकल्पिक ऑब्जेक्ट स्वरूपों का समर्थन करने के लिए, आपको आमतौर पर इसे निर्दिष्ट करने की आवश्यकता नहीं होती है, जैसे ld
डिफ़ॉल्ट इनपुट प्रारूप के रूप में प्रत्येक पर सबसे सामान्य प्रारूप की अपेक्षा करने के लिए कॉन्फ़िगर किया जाना चाहिए
मशीन। इनपुट प्रारूप एक टेक्स्ट स्ट्रिंग है, द्वारा समर्थित एक विशेष प्रारूप का नाम
बीएफडी पुस्तकालय। (आप उपलब्ध बाइनरी प्रारूपों को सूचीबद्ध कर सकते हैं ओब्जडम्प -i.)

यदि आप फ़ाइलों को असामान्य बाइनरी से लिंक कर रहे हैं तो आप इस विकल्प का उपयोग करना चाह सकते हैं
प्रारूप। आप भी उपयोग कर सकते हैं -b स्वरूपों को स्पष्ट रूप से स्विच करने के लिए (ऑब्जेक्ट फ़ाइलों को लिंक करते समय
विभिन्न स्वरूपों के), सहित -b इनपुट प्रारूप ऑब्जेक्ट फ़ाइलों के प्रत्येक समूह से पहले
एक विशेष प्रारूप में।

डिफ़ॉल्ट प्रारूप पर्यावरण चर "GNUTARGET" से लिया गया है।

आप "TARGET" कमांड का उपयोग करके किसी स्क्रिप्ट से इनपुट प्रारूप को भी परिभाषित कर सकते हैं;

-c एमआरआई-कमांडफाइल
--एमआरआई-स्क्रिप्ट=एमआरआई-कमांडफाइल
एमआरआई द्वारा निर्मित लिंकर्स के साथ संगतता के लिए, ld a . में लिखी गई स्क्रिप्ट फ़ाइलों को स्वीकार करता है
वैकल्पिक, प्रतिबंधित कमांड भाषा, एमआरआई संगत स्क्रिप्ट फाइलों में वर्णित है
जीएनयू एलडी दस्तावेज़ीकरण का खंड। विकल्प के साथ MRI स्क्रिप्ट फ़ाइलें पेश करें -c; उपयोग
la -T सामान्य प्रयोजन में लिखी गई लिंकर लिपियों को चलाने का विकल्प ld पटकथा
भाषा: हिन्दी। अगर एमआरआई-cmdfile मौजूद नहीं होना, ld निर्दिष्ट निर्देशिकाओं में इसे ढूंढता है
किसी के भी द्वारा -L विकल्प.

-d
-DC
-डॉ ये तीन विकल्प समकक्ष हैं; संगतता के लिए कई रूप समर्थित हैं
अन्य लिंकर्स के साथ। स्थानांतरित करने योग्य आउटपुट होने पर भी वे सामान्य प्रतीकों को स्थान प्रदान करते हैं
फ़ाइल निर्दिष्ट है (के साथ -r) स्क्रिप्ट कमांड "FORCE_COMMON_ALLOCATION" में है
एक ही प्रभाव।

-e प्रविष्टि
--प्रवेश=प्रविष्टि
उपयोग प्रविष्टि बजाय आपके प्रोग्राम के निष्पादन की शुरुआत के लिए स्पष्ट प्रतीक के रूप में
डिफ़ॉल्ट प्रवेश बिंदु। अगर नाम का कोई प्रतीक नहीं है प्रविष्टि, लिंकर कोशिश करेगा
पार्स प्रविष्टि एक संख्या के रूप में, और इसे प्रवेश पते के रूप में उपयोग करें (संख्या होगी
आधार 10 में व्याख्या की गई; आप एक अग्रणी का उपयोग कर सकते हैं 0x आधार 16 के लिए, या एक अग्रणी 0 आधार के लिए
8)।

--बहिष्कृत-libs lib,lib, ...
संग्रह पुस्तकालयों की एक सूची निर्दिष्ट करता है जिसमें से प्रतीकों को स्वचालित रूप से नहीं होना चाहिए
निर्यात किया। पुस्तकालय के नाम अल्पविराम या कोलन द्वारा सीमांकित किए जा सकते हैं। निर्दिष्ट करना
"--exclude-libs ALL" स्वचालित निर्यात से सभी संग्रह पुस्तकालयों में प्रतीकों को शामिल नहीं करता है।
यह विकल्प केवल लिंकर के i386 PE लक्षित पोर्ट और ELF के लिए उपलब्ध है
लक्षित बंदरगाहों। i386 PE के लिए, .def फ़ाइल में स्पष्ट रूप से सूचीबद्ध प्रतीक स्थिर हैं
निर्यात, इस विकल्प की परवाह किए बिना। ईएलएफ लक्षित बंदरगाहों के लिए, इससे प्रभावित प्रतीक
विकल्प छिपा हुआ माना जाएगा।

-E
--निर्यात-गतिशील
गतिशील रूप से लिंक किए गए निष्पादन योग्य बनाते समय, सभी प्रतीकों को गतिशील प्रतीक में जोड़ें
टेबल। गतिशील प्रतीक तालिका उन प्रतीकों का समूह है जो गतिशील से दिखाई दे रहे हैं
रन टाइम पर ऑब्जेक्ट।

यदि आप इस विकल्प का उपयोग नहीं करते हैं, तो गतिशील प्रतीक तालिका में सामान्य रूप से केवल शामिल होंगे
वे प्रतीक जो लिंक में उल्लिखित किसी गतिशील वस्तु द्वारा संदर्भित हैं।

यदि आप एक गतिशील वस्तु को लोड करने के लिए "dlopen" का उपयोग करते हैं जिसे प्रतीकों को वापस संदर्भित करने की आवश्यकता होती है
किसी अन्य गतिशील वस्तु के बजाय कार्यक्रम द्वारा परिभाषित किया गया है, तो आप शायद
प्रोग्राम को लिंक करते समय इस विकल्प का उपयोग करने की आवश्यकता है।

आप संस्करण स्क्रिप्ट का उपयोग यह नियंत्रित करने के लिए भी कर सकते हैं कि कौन से प्रतीकों को जोड़ा जाना चाहिए
गतिशील प्रतीक तालिका यदि आउटपुट स्वरूप इसका समर्थन करता है। का वर्णन देखें
--संस्करण-स्क्रिप्ट @ref{संस्करण} में।

-ईबी बिग-एंडियन ऑब्जेक्ट्स को लिंक करें। यह डिफ़ॉल्ट आउटपुट स्वरूप को प्रभावित करता है।

हैं El छोटी-एंडियन वस्तुओं को लिंक करें। यह डिफ़ॉल्ट आउटपुट स्वरूप को प्रभावित करता है।

-f
--सहायक नाम
ELF साझा ऑब्जेक्ट बनाते समय, आंतरिक DT_AUXILIARY फ़ील्ड को इस पर सेट करें
निर्दिष्ट नाम। यह डायनेमिक लिंकर को बताता है कि साझा की प्रतीक तालिका
ऑब्जेक्ट को साझा ऑब्जेक्ट के प्रतीक तालिका पर सहायक फ़िल्टर के रूप में उपयोग किया जाना चाहिए
नाम.

यदि आप बाद में किसी प्रोग्राम को इस फ़िल्टर ऑब्जेक्ट से लिंक करते हैं, तो, जब आप इसे चलाते हैं
प्रोग्राम, डायनेमिक लिंकर DT_AUXILIARY फ़ील्ड को देखेगा। यदि गतिशील लिंकर
फ़िल्टर ऑब्जेक्ट से किसी भी प्रतीक को हल करता है, यह पहले जांच करेगा कि क्या a . है
साझा वस्तु में परिभाषा नाम. यदि कोई है, तो इसका उपयोग के बजाय किया जाएगा
फ़िल्टर ऑब्जेक्ट में परिभाषा। साझा वस्तु नाम आवश्यकता नहीं है। इस प्रकार
साझा वस्तु नाम कुछ के वैकल्पिक कार्यान्वयन प्रदान करने के लिए इस्तेमाल किया जा सकता है
कार्य, शायद डिबगिंग के लिए या मशीन विशिष्ट प्रदर्शन के लिए।

यह विकल्प एक से अधिक बार निर्दिष्ट किया जा सकता है। DT_AUXILIARY प्रविष्टियां बनाई जाएंगी
जिस क्रम में वे कमांड लाइन पर दिखाई देते हैं।

-F नाम
--फ़िल्टर नाम
ELF साझा ऑब्जेक्ट बनाते समय, आंतरिक DT_FILTER फ़ील्ड को निर्दिष्ट पर सेट करें
नाम। यह गतिशील लिंकर को बताता है कि साझा वस्तु की प्रतीक तालिका जो
बनाया जा रहा है साझा वस्तु के प्रतीक तालिका पर एक फिल्टर के रूप में इस्तेमाल किया जाना चाहिए
नाम.

यदि आप बाद में किसी प्रोग्राम को इस फ़िल्टर ऑब्जेक्ट से लिंक करते हैं, तो, जब आप इसे चलाते हैं
प्रोग्राम, डायनेमिक लिंकर DT_FILTER फ़ील्ड को देखेगा। गतिशील लिंकर होगा
हमेशा की तरह फ़िल्टर ऑब्जेक्ट की प्रतीक तालिका के अनुसार प्रतीकों को हल करें, लेकिन यह
वास्तव में साझा वस्तु में मिली परिभाषाओं से जुड़ेंगे नाम। इस प्रकार
फ़िल्टर ऑब्जेक्ट का उपयोग ऑब्जेक्ट द्वारा प्रदान किए गए प्रतीकों के सबसेट का चयन करने के लिए किया जा सकता है
नाम.

कुछ पुराने लिंकर्स ने का इस्तेमाल किया -F के लिए एक संकलन टूलचेन भर में विकल्प
इनपुट और आउटपुट ऑब्जेक्ट फ़ाइलों दोनों के लिए ऑब्जेक्ट-फ़ाइल स्वरूप निर्दिष्ट करना। जीएनयू लिंकर
इस उद्देश्य के लिए अन्य तंत्रों का उपयोग करता है: the -b, --प्रारूप, --oformat विकल्प,
लिंकर स्क्रिप्ट में "TARGET" कमांड और "GNUTARGET" पर्यावरण चर। जीएनयू
लिंकर को अनदेखा कर देगा -F विकल्प जब ईएलएफ साझा वस्तु नहीं बना रहा है।

-फिनि नाम
ईएलएफ निष्पादन योग्य या साझा वस्तु बनाते समय, निष्पादन योग्य होने पर NAME को कॉल करें या
फ़ंक्शन के पते पर DT_FINI सेट करके साझा ऑब्जेक्ट अनलोड किया जाता है। द्वारा
डिफ़ॉल्ट रूप से, लिंकर कॉल करने के लिए फ़ंक्शन के रूप में "_fini" का उपयोग करता है।

-g अवहेलना करना। अन्य उपकरणों के साथ संगतता के लिए प्रदान किया गया।

-Gमूल्य
--gpsize=मूल्य
जीपी रजिस्टर का उपयोग करके अनुकूलित करने के लिए वस्तुओं का अधिकतम आकार सेट करें आकार। इस
ऑब्जेक्ट फ़ाइल स्वरूपों जैसे MIPS ECOFF के लिए केवल सार्थक है जो डालने का समर्थन करता है
विभिन्न वर्गों में बड़ी और छोटी वस्तुओं। यह अन्य वस्तु के लिए अनदेखा किया जाता है
फ़ाइल स्वरूपों.

-hनाम
-सोनम =नाम
ELF साझा ऑब्जेक्ट बनाते समय, आंतरिक DT_SONAME फ़ील्ड को निर्दिष्ट पर सेट करें
नाम। जब एक निष्पादन योग्य एक साझा ऑब्जेक्ट से जुड़ा होता है जिसमें DT_SONAME फ़ील्ड होता है,
फिर जब निष्पादन योग्य चलाया जाता है तो गतिशील लिंकर साझा लोड करने का प्रयास करेगा
दिए गए फ़ाइल नाम का उपयोग करने के बजाय DT_SONAME फ़ील्ड द्वारा निर्दिष्ट वस्तु
लिंकर।

-i एक वृद्धिशील लिंक निष्पादित करें (विकल्प के समान -r).

-इस में नाम
ईएलएफ निष्पादन योग्य या साझा वस्तु बनाते समय, निष्पादन योग्य होने पर NAME को कॉल करें या
फ़ंक्शन के पते पर DT_INIT सेट करके साझा ऑब्जेक्ट लोड किया जाता है। द्वारा
डिफ़ॉल्ट रूप से, लिंकर कॉल करने के लिए फ़ंक्शन के रूप में "_init" का उपयोग करता है।

-lसंग्रह
--लाइब्रेरी=संग्रह
संग्रह फ़ाइल जोड़ें संग्रह लिंक करने के लिए फ़ाइलों की सूची में। यह विकल्प किसी भी इस्तेमाल किया जा सकता है
कई बार। ld "lib ." की घटनाओं के लिए अपनी पथ-सूची खोजेगासंग्रह.ए" एसटी
प्रत्येक संग्रह निर्दिष्ट।

साझा पुस्तकालयों का समर्थन करने वाले सिस्टम पर, ld के साथ पुस्तकालयों की खोज भी कर सकते हैं
".a" के अलावा अन्य एक्सटेंशन। विशेष रूप से, ELF और SunOS सिस्टम पर, ld खोज लेंगे
एक के साथ एक के लिए खोज करने से पहले ".so" के विस्तार के साथ एक पुस्तकालय के लिए निर्देशिका
".ए" का विस्तार। परंपरा के अनुसार, ".so" एक्सटेंशन एक साझा लाइब्रेरी को इंगित करता है।

लिंकर किसी संग्रह को केवल एक बार खोजेगा, उस स्थान पर जहां इसे निर्दिष्ट किया गया है
कमांड लाइन। यदि संग्रह एक प्रतीक को परिभाषित करता है जो किसी वस्तु में अपरिभाषित था
जो कमांड लाइन पर संग्रह से पहले दिखाई दिया, लिंकर में शामिल होगा
संग्रह से उपयुक्त फ़ाइल (फ़ाइलें)। हालांकि, किसी वस्तु में एक अपरिभाषित प्रतीक
कमांड लाइन पर बाद में प्रदर्शित होने से लिंकर संग्रह की खोज नहीं करेगा
फिर से।

देखना -( लिंकर को कई बार संग्रह खोजने के लिए मजबूर करने के तरीके के लिए विकल्प।

आप कमांड लाइन पर एक ही संग्रह को कई बार सूचीबद्ध कर सकते हैं।

इस प्रकार की संग्रह खोज यूनिक्स लिंकर्स के लिए मानक है। हालाँकि, यदि आप
का उपयोग ld AIX पर, ध्यान दें कि यह AIX लिंकर के व्यवहार से अलग है।

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

If सर्चदिरि "=" से शुरू होता है, फिर "=" को से बदल दिया जाएगा सिसरूट उपसर्गतक
पथ निर्दिष्ट किया गया है जब लिंकर कॉन्फ़िगर किया गया है।

खोजे गए पथों का डिफ़ॉल्ट सेट (बिना निर्दिष्ट किए -L) किस पर निर्भर करता है
अनुकरण मोड ld उपयोग कर रहा है, और कुछ मामलों में यह भी कि इसे कैसे कॉन्फ़िगर किया गया था।

पथ को "SEARCH_DIR" कमांड के साथ लिंक स्क्रिप्ट में भी निर्दिष्ट किया जा सकता है।
इस तरह से निर्दिष्ट निर्देशिकाएं उस बिंदु पर खोजी जाती हैं जहां लिंकर स्क्रिप्ट
कमांड लाइन में दिखाई देता है।

-mअनुकरण
अनुकरण करें अनुकरण लिंकर। आप उपलब्ध एमुलेशन को के साथ सूचीबद्ध कर सकते हैं
--verbose or -V विकल्प.

अगर -m विकल्प का उपयोग नहीं किया जाता है, अनुकरण "LDEMULATION" से लिया जाता है
पर्यावरण चर, यदि वह परिभाषित किया गया है।

अन्यथा, डिफ़ॉल्ट इम्यूलेशन इस बात पर निर्भर करता है कि लिंकर को कैसे कॉन्फ़िगर किया गया था।

-M
--प्रिंट-मानचित्र
मानक आउटपुट के लिए एक लिंक मैप प्रिंट करें। एक लिंक नक्शा के बारे में जानकारी प्रदान करता है
लिंक, निम्नलिखित सहित:

* जहां ऑब्जेक्ट फाइलों और प्रतीकों को मेमोरी में मैप किया जाता है।

* आम प्रतीकों को कैसे आवंटित किया जाता है।

* सभी संग्रह सदस्यों को लिंक में शामिल किया गया है, जिसमें प्रतीक का उल्लेख है
संग्रह सदस्य को लाने का कारण बना।

-n
--nmagic
अनुभागों के पृष्ठ संरेखण को बंद करें, और यदि संभव हो तो आउटपुट को "NMAGIC" के रूप में चिह्नित करें।

-N
--ओमैजिक
टेक्स्ट और डेटा सेक्शन को पढ़ने योग्य और लिखने योग्य सेट करें। साथ ही, पेज-एलाइन न करें
डेटा खंड, और साझा पुस्तकालयों के विरुद्ध लिंकिंग अक्षम करें। यदि आउटपुट स्वरूप
यूनिक्स स्टाइल मैजिक नंबरों का समर्थन करता है, आउटपुट को "OMAGIC" के रूप में चिह्नित करें। नोट: हालांकि ए
पीई-सीओएफएफ लक्ष्यों के लिए लिखने योग्य टेक्स्ट सेक्शन की अनुमति है, यह इसके अनुरूप नहीं है
माइक्रोसॉफ्ट द्वारा प्रकाशित प्रारूप विनिर्देश।

--no-omagic
यह विकल्प के अधिकांश प्रभावों को नकारता है -N विकल्प। यह टेक्स्ट सेक्शन को पर सेट करता है
केवल पढ़ने के लिए हो, और डेटा खंड को पृष्ठ-संरेखित करने के लिए बाध्य करता है। नोट - यह विकल्प करता है
साझा पुस्तकालयों के खिलाफ लिंकिंग सक्षम नहीं है। उपयोग -बडायनामिक इसके लिए।

-o उत्पादन
--आउटपुट=उत्पादन
उपयोग उत्पादन द्वारा निर्मित कार्यक्रम के नाम के रूप में ld; यदि यह विकल्प नहीं है
निर्दिष्ट, नाम ए.आउट डिफ़ॉल्ट रूप से उपयोग किया जाता है। स्क्रिप्ट कमांड "OUTPUT" भी ​​कर सकते हैं
आउटपुट फ़ाइल नाम निर्दिष्ट करें।

-O स्तर
If स्तर शून्य से बड़ा एक संख्यात्मक मान है ld आउटपुट का अनुकूलन करता है। संभवत: यह
काफी अधिक समय लेते हैं और इसलिए संभवत: केवल फाइनल के लिए ही सक्षम होना चाहिए
बाइनरी।

-q
--emit-relocs
पूरी तरह से लिंक किए गए निष्पादन योग्य में स्थानांतरण अनुभागों और सामग्री को छोड़ दें। पोस्ट लिंक
विश्लेषण और अनुकूलन उपकरण को सही प्रदर्शन करने के लिए इस जानकारी की आवश्यकता हो सकती है
निष्पादन योग्य संशोधन। इसके परिणामस्वरूप बड़े निष्पादन योग्य होते हैं।

यह विकल्प वर्तमान में केवल ELF प्लेटफॉर्म पर समर्थित है।

-r
--स्थानांतरणीय
स्थानांतरित करने योग्य आउटपुट उत्पन्न करें --- यानी, एक आउटपुट फ़ाइल उत्पन्न करें जो बदले में सेवा कर सके
करने के लिए इनपुट ld. इसे अक्सर कहा जाता है आंशिक जोड़ने. एक साइड इफेक्ट के रूप में, वातावरण में
जो मानक यूनिक्स जादू संख्याओं का समर्थन करते हैं, यह विकल्प आउटपुट फ़ाइल को भी सेट करता है
जादू संख्या "ओमैजिक" के लिए। यदि यह विकल्प निर्दिष्ट नहीं है, तो एक पूर्ण फ़ाइल है
उत्पादित। C++ प्रोग्राम को लिंक करते समय, यह विकल्प मर्जी नहीं के संदर्भों को हल करें
रचनाकार; ऐसा करने के लिए, उपयोग करें -उरु.

जब एक इनपुट फ़ाइल में आउटपुट फ़ाइल के समान प्रारूप नहीं होता है, तो आंशिक लिंकिंग
केवल तभी समर्थित है जब उस इनपुट फ़ाइल में कोई स्थान परिवर्तन न हो। विभिन्न
आउटपुट स्वरूपों में और प्रतिबंध हो सकते हैं; उदाहरण के लिए कुछ "a.out"-आधारित प्रारूप
अन्य स्वरूपों में इनपुट फ़ाइलों के साथ आंशिक लिंकिंग का समर्थन बिल्कुल भी नहीं करते हैं।

यह विकल्प वही काम करता है जैसे -i.

-R फ़ाइल का नाम
--जस्ट-चिह्न=फ़ाइल का नाम
से पढ़ें प्रतीक नाम और उनके पते फ़ाइल का नाम, लेकिन इसे स्थानांतरित न करें या शामिल न करें
इसे आउटपुट में। यह आपकी आउटपुट फ़ाइल को प्रतीकात्मक रूप से निरपेक्ष को संदर्भित करने की अनुमति देता है
अन्य कार्यक्रमों में परिभाषित स्मृति के स्थान। आप इस विकल्प का अधिक से अधिक उपयोग कर सकते हैं
एक बार।

अन्य ईएलएफ लिंकर्स के साथ संगतता के लिए, यदि -R विकल्प के बाद एक निर्देशिका होती है
नाम, फ़ाइल नाम के बजाय, इसे के रूप में माना जाता है -रपाथ विकल्प.

-s
--स्ट्रिप-ऑल
आउटपुट फ़ाइल से सभी प्रतीक जानकारी को हटा दें।

-S
--पट्टी-डीबग
आउटपुट फ़ाइल से डिबगर प्रतीक जानकारी (लेकिन सभी प्रतीक नहीं) को छोड़ दें।

-t
--ट्रेस
इनपुट फाइलों के नाम इस प्रकार प्रिंट करें ld उन्हें संसाधित करता है।

-T स्क्रिप्ट फाइल
--स्क्रिप्ट=स्क्रिप्ट फाइल
उपयोग स्क्रिप्ट फाइल लिंकर स्क्रिप्ट के रूप में। यह स्क्रिप्ट प्रतिस्थापित करती है ldकी डिफ़ॉल्ट लिंकर स्क्रिप्ट
(इसे जोड़ने के बजाय), इसलिए कमांडफाइल करने के लिए आवश्यक सब कुछ निर्दिष्ट करना चाहिए
आउटपुट फ़ाइल का वर्णन करें। अगर स्क्रिप्ट फाइल वर्तमान निर्देशिका में मौजूद नहीं है,
"ld" किसी भी पूर्ववर्ती द्वारा निर्दिष्ट निर्देशिकाओं में इसकी तलाश करता है -L विकल्प। विभिन्न
-T विकल्प जमा हो जाते हैं।

-u प्रतीक
--अपरिभाषित=प्रतीक
सेना प्रतीक आउटपुट फ़ाइल में एक अपरिभाषित प्रतीक के रूप में दर्ज किया जाना है। ऐसा करने से हो सकता है,
उदाहरण के लिए, मानक पुस्तकालयों से अतिरिक्त मॉड्यूल को जोड़ने का ट्रिगर। -u हो सकता है
अतिरिक्त अपरिभाषित प्रतीकों को दर्ज करने के लिए विभिन्न विकल्प तर्कों के साथ दोहराया गया। इस
विकल्प "EXTERN" लिंकर स्क्रिप्ट कमांड के बराबर है।

-उरु C++ प्रोग्राम के अलावा किसी और चीज़ के लिए, यह विकल्प के बराबर है -r: यह उत्पन्न करता है
स्थानांतरित करने योग्य आउटपुट --- यानी, एक आउटपुट फ़ाइल जो बदले में इनपुट के रूप में काम कर सकती है ld. जब
C++ प्रोग्राम को लिंक करना, -उरु कर देता है कंस्ट्रक्टर्स के संदर्भों को हल करें, इसके विपरीत -r. ऐसा होता है
उपयोग करने के लिए काम नहीं -उरु उन फाइलों पर जो खुद से जुड़ी हुई थीं -उरु; एक बार
कंस्ट्रक्टर टेबल बनाया गया है, इसे जोड़ा नहीं जा सकता। उपयोग -उरु केवल अंतिम के लिए
आंशिक लिंक, और -r दूसरों के लिए।

--अद्वितीय[=धारा]
मिलान करने वाले प्रत्येक इनपुट अनुभाग के लिए एक अलग आउटपुट अनुभाग बनाता है धारा, या यदि
वैकल्पिक वाइल्डकार्ड धारा प्रत्येक अनाथ इनपुट अनुभाग के लिए तर्क गुम है। एक
अनाथ खंड वह है जिसका विशेष रूप से लिंकर स्क्रिप्ट में उल्लेख नहीं किया गया है। आप इसका इस्तेमाल कर सकते हैं
कमांड लाइन पर कई बार विकल्प; यह इनपुट के सामान्य विलय को रोकता है
लिंकर स्क्रिप्ट में आउटपुट सेक्शन असाइनमेंट को ओवरराइड करते हुए समान नाम वाले सेक्शन।

-v
--संस्करण
-V के लिए संस्करण संख्या प्रदर्शित करें ld-V विकल्प समर्थित इम्यूलेशन को भी सूचीबद्ध करता है।

-x
--त्याग-सब
सभी स्थानीय प्रतीकों को हटा दें।

-X
--त्याग-स्थानीय
सभी अस्थायी स्थानीय प्रतीकों को हटा दें। अधिकांश लक्ष्यों के लिए, यह सभी स्थानीय प्रतीक हैं जिनके
नाम से शुरू होते हैं L.

-y प्रतीक
--ट्रेस-प्रतीक=प्रतीक
प्रत्येक लिंक की गई फ़ाइल का नाम प्रिंट करें जिसमें प्रतीक दिखाई पड़ना। यह विकल्प दिया जा सकता है
कितनी भी बार। कई प्रणालियों पर एक अंडरस्कोर तैयार करना आवश्यक है।

यह विकल्प तब उपयोगी होता है जब आपके लिंक में एक अपरिभाषित प्रतीक होता है लेकिन पता नहीं होता है
जहां से संदर्भ आ रहा है।

-Y पथ
जोड़ना पथ डिफ़ॉल्ट पुस्तकालय खोज पथ के लिए। सोलारिस के लिए यह विकल्प मौजूद है
संगतता।

-z कीवर्ड
मान्यता प्राप्त कीवर्ड हैं:

कॉम्ब्रेलोक
कई स्थानांतरित अनुभागों को जोड़ता है और उन्हें गतिशील प्रतीक लुकअप बनाने के लिए सॉर्ट करता है
कैशिंग संभव।

डीएफएस
ऑब्जेक्ट फ़ाइलों में अपरिभाषित प्रतीकों की अनुमति नहीं देता है। साझा में अपरिभाषित प्रतीक
पुस्तकालयों को अभी भी अनुमति है।

इनिटफर्स्ट
साझा ऑब्जेक्ट बनाते समय यह विकल्प केवल सार्थक होता है। यह वस्तु को चिह्नित करता है
ताकि इसका रनटाइम इनिशियलाइज़ेशन के रनटाइम इनिशियलाइज़ेशन से पहले हो जाए
किसी अन्य वस्तु को उसी समय प्रक्रिया में लाया गया। इसी तरह
ऑब्जेक्ट का रनटाइम फ़ाइनलाइज़ेशन, के रनटाइम फ़ाइनलाइज़ेशन के बाद होगा
कोई अन्य वस्तु।

जड़ना
उस वस्तु को चिह्नित करता है जिसे उसकी प्रतीक तालिका सभी प्रतीकों से पहले अंतःस्थापित करती है लेकिन
प्राथमिक निष्पादन योग्य।

लोडफ़्लट्र
ऑब्जेक्ट को चिह्नित करता है कि उसके फ़िल्टर को रनटाइम पर तुरंत संसाधित किया जाएगा।

मुल्डेफ़्स
कई परिभाषाओं की अनुमति देता है।

नोकोम्ब्रेलोक
एक से अधिक स्थानान्तरण अनुभागों के संयोजन को अक्षम करता है।

नोकॉपीरेलोक
प्रतिलिपि स्थानांतरण के उत्पादन को अक्षम करता है।

नोडिफॉल्टलिब
ऑब्जेक्ट को चिह्नित करता है कि इस ऑब्जेक्ट की निर्भरता की खोज किसी को भी अनदेखा कर देगी
डिफ़ॉल्ट पुस्तकालय खोज पथ।

नोडलेट
ऑब्जेक्ट को रनटाइम पर अनलोड नहीं किया जाना चाहिए।

नोडलोपेन
उस वस्तु को चिह्नित करता है जो "dlopen" के लिए उपलब्ध नहीं है।

गांठदार
चिह्नित करता है कि वस्तु को "dldump" द्वारा डंप नहीं किया जा सकता है।

अभी निष्पादन योग्य या साझा लाइब्रेरी बनाते समय, इसे गतिशील बताने के लिए चिह्नित करें
लिंकर सभी प्रतीकों को हल करने के लिए जब कार्यक्रम शुरू होता है, या जब साझा किया जाता है
लाइब्रेरी फ़ंक्शन कॉल रिज़ॉल्यूशन को स्थगित करने के बजाय, dlopen का उपयोग करने से जुड़ी हुई है
उस बिंदु तक जब फ़ंक्शन को पहली बार बुलाया जाता है।

मूल
चिह्नित करता है कि वस्तु में $ORIGIN हो सकता है।

सोलारिस संगतता के लिए अन्य खोजशब्दों की उपेक्षा की जाती है।

-( अभिलेखागार -)
--स्टार्ट-ग्रुप अभिलेखागार --अंत-समूह
RSI अभिलेखागार संग्रह फ़ाइलों की एक सूची होनी चाहिए। वे या तो स्पष्ट फ़ाइल हो सकते हैं
नाम, या -l विकल्प.

निर्दिष्ट संग्रह बार-बार खोजे जाते हैं जब तक कि कोई नया अपरिभाषित संदर्भ न हो
बनाया था। आम तौर पर, एक संग्रह को केवल एक बार उसी क्रम में खोजा जाता है जिस क्रम में यह निर्दिष्ट किया जाता है
कमांड लाइन पर। यदि अपरिभाषित को हल करने के लिए उस संग्रह में एक प्रतीक की आवश्यकता है
किसी संग्रह में किसी ऑब्जेक्ट द्वारा संदर्भित प्रतीक जो बाद में कमांड लाइन पर दिखाई देता है,
लिंकर उस संदर्भ को हल करने में सक्षम नहीं होगा। अभिलेखागार को समूहीकृत करके,
सभी संभावित संदर्भों का समाधान होने तक वे सभी बार-बार खोजे जाते हैं।

इस विकल्प का उपयोग करने की एक महत्वपूर्ण प्रदर्शन लागत है। इसका उपयोग तभी करना सबसे अच्छा है जब
दो या दो से अधिक अभिलेखागार के बीच अपरिहार्य परिपत्र संदर्भ हैं।

--स्वीकार-अज्ञात-इनपुट-आर्क
--नहीं-स्वीकार-अज्ञात-इनपुट-आर्क
लिंकर को उन इनपुट फाइलों को स्वीकार करने के लिए कहता है जिनकी वास्तुकला को पहचाना नहीं जा सकता है। NS
धारणा यह है कि उपयोगकर्ता जानता है कि वे क्या कर रहे हैं और जानबूझकर लिंक करना चाहते हैं
इन अज्ञात इनपुट फाइलों में। यह लिंकर का डिफ़ॉल्ट व्यवहार था, पहले
रिलीज 2.14. 2.14 रिलीज के बाद से डिफ़ॉल्ट व्यवहार ऐसे इनपुट को अस्वीकार करना है
फ़ाइलें, और इसलिए --स्वीकार-अज्ञात-इनपुट-आर्क पुराने को पुनर्स्थापित करने के लिए विकल्प जोड़ा गया है
व्यवहार।

--जैसी जरूरत थी
--नहीं-जैसी-जरूरत
यह विकल्प कमांड पर उल्लिखित गतिशील पुस्तकालयों के लिए ELF DT_NEEDED टैग को प्रभावित करता है
के बाद लाइन --जैसी जरूरत थी विकल्प। आम तौर पर, लिंकर इसके लिए DT_NEEDED टैग जोड़ देगा
कमांड लाइन पर उल्लिखित प्रत्येक गतिशील पुस्तकालय, चाहे पुस्तकालय हो
वास्तव में जरूरत है। --जैसी जरूरत थी कारण DT_NEEDED टैग केवल के लिए उत्सर्जित होते हैं
पुस्तकालय जो नियमित वस्तुओं से कुछ प्रतीक संदर्भ को संतुष्ट करते हैं जो अपरिभाषित है
जिस बिंदु पर पुस्तकालय जुड़ा हुआ था। --नहीं-जैसी-जरूरत डिफ़ॉल्ट पुनर्स्थापित करता है
व्यवहार।

--जोड़ने की जरूरत
--नहीं-जोड़-आवश्यक
यह विकल्प ELF DT_NEEDED टैग से गतिशील पुस्तकालयों के उपचार को प्रभावित करता है
के बाद कमांड लाइन पर उल्लिखित गतिशील पुस्तकालय --नहीं-जोड़-आवश्यक विकल्प.
आम तौर पर, लिंकर DT_NEEDED से प्रत्येक गतिशील पुस्तकालय के लिए एक DT_NEEDED टैग जोड़ देगा
टैग। --नहीं-जोड़-आवश्यक कारण DT_NEEDED टैग उन पुस्तकालयों के लिए कभी उत्सर्जित नहीं होंगे
DT_NEEDED टैग से। --जोड़ने की जरूरत डिफ़ॉल्ट व्यवहार को पुनर्स्थापित करता है।

-जोर कीवर्ड
SunOS संगतता के लिए इस विकल्प पर ध्यान नहीं दिया जाता है।

-बडायनामिक
-डीयू
-call_shared
गतिशील पुस्तकालयों के खिलाफ लिंक। यह केवल उन प्लेटफार्मों पर सार्थक है जिनके लिए साझा किया गया है
पुस्तकालयों का समर्थन किया जाता है। यह विकल्प आमतौर पर ऐसे प्लेटफॉर्म पर डिफ़ॉल्ट होता है। NS
इस विकल्प के विभिन्न प्रकार विभिन्न प्रणालियों के साथ संगतता के लिए हैं। आप कर सकते हैं
कमांड लाइन पर इस विकल्प का कई बार उपयोग करें: यह पुस्तकालय खोज को प्रभावित करता है
-l विकल्प जो इसका अनुसरण करते हैं।

-बीग्रुप
डायनेमिक सेक्शन में "DT_FLAGS_1" प्रविष्टि में "DF_1_GROUP" ध्वज सेट करें। इस
रनटाइम लिंकर को इस ऑब्जेक्ट और इसकी निर्भरता में लुकअप को संभालने का कारण बनता है
केवल समूह के अंदर प्रदर्शन किया। - अनसुलझे-प्रतीक = रिपोर्ट-सब निहित है। इस
विकल्प केवल ईएलएफ प्लेटफॉर्म पर सार्थक है जो साझा पुस्तकालयों का समर्थन करते हैं।

-बस्टेटिक
-डीएन
-गैर_साझा
स्थैतिक
साझा पुस्तकालयों के खिलाफ लिंक न करें। यह केवल उन प्लेटफॉर्म पर सार्थक है जिसके लिए
साझा पुस्तकालय समर्थित हैं। इस विकल्प के विभिन्न प्रकार हैं
विभिन्न प्रणालियों के साथ संगतता। आप इस विकल्प का कई बार उपयोग कर सकते हैं
कमांड लाइन: यह पुस्तकालय की खोज को प्रभावित करता है -l विकल्प जो इसका अनुसरण करते हैं। इस
विकल्प का अर्थ यह भी है - अनसुलझे-प्रतीक = रिपोर्ट-सब.

-प्रतीकात्मक
एक साझा पुस्तकालय बनाते समय, वैश्विक प्रतीकों के संदर्भों को परिभाषा से बांधें
साझा पुस्तकालय के भीतर, यदि कोई हो। आम तौर पर, लिंक किए गए प्रोग्राम के लिए यह संभव है
साझा लाइब्रेरी के भीतर परिभाषा को ओवरराइड करने के लिए साझा लाइब्रेरी के विरुद्ध। इस
विकल्प केवल ईएलएफ प्लेटफॉर्म पर सार्थक है जो साझा पुस्तकालयों का समर्थन करते हैं।

--चेक-सेक्शन
--नो-चेक-सेक्शन
लिंकर पूछता है नहीं अनुभाग पतों की जांच करने के बाद उन्हें यह देखने के लिए असाइन किया गया है कि क्या
वहां कोई ओवरलैप है। आम तौर पर लिंकर यह जांच करेगा, और यदि उसे कोई मिलता है
ओवरलैप करता है तो यह उपयुक्त त्रुटि संदेश उत्पन्न करेगा। लिंकर के बारे में जानता है, और
ओवरले में अनुभागों के लिए भत्ते बनाता है। डिफ़ॉल्ट व्यवहार को बहाल किया जा सकता है
कमांड लाइन स्विच का उपयोग करके --चेक-सेक्शन.

--cref
एक क्रॉस संदर्भ तालिका आउटपुट करें। यदि एक लिंकर मानचित्र फ़ाइल उत्पन्न की जा रही है, तो क्रॉस
संदर्भ तालिका मानचित्र फ़ाइल में मुद्रित होती है। अन्यथा, यह मानक पर मुद्रित होता है
उत्पादन.

तालिका का प्रारूप जानबूझकर सरल है, ताकि इसे आसानी से संसाधित किया जा सके
यदि आवश्यक हो तो एक स्क्रिप्ट। प्रतीकों को मुद्रित किया जाता है, नाम से क्रमबद्ध किया जाता है। प्रत्येक प्रतीक के लिए,
फ़ाइल नामों की एक सूची दी गई है। यदि प्रतीक परिभाषित किया गया है, तो सूचीबद्ध पहली फ़ाइल है
परिभाषा का स्थान। शेष फाइलों में प्रतीक के संदर्भ हैं।

--नो-डिफाइन-कॉमन
यह विकल्प सामान्य प्रतीकों के लिए पतों के असाइनमेंट को रोकता है। लिपी
कमांड "INHIBIT_COMMON_ALLOCATION" का एक ही प्रभाव है।

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

--डेफसिम प्रतीक=अभिव्यक्ति
आउटपुट फ़ाइल में एक वैश्विक प्रतीक बनाएँ, जिसमें द्वारा दिया गया निरपेक्ष पता हो
अभिव्यक्ति. बहु को परिभाषित करने के लिए आप इस विकल्प का जितनी बार आवश्यक हो उपयोग कर सकते हैं
कमांड लाइन में प्रतीक। अंकगणित का एक सीमित रूप के लिए समर्थित है
अभिव्यक्ति इस संदर्भ में: आप एक हेक्साडेसिमल स्थिरांक या एक का नाम दे सकते हैं
मौजूदा प्रतीक, या हेक्साडेसिमल स्थिरांक जोड़ने या घटाने के लिए "+" और "-" का उपयोग करें या
प्रतीक यदि आपको अधिक विस्तृत अभिव्यक्तियों की आवश्यकता है, तो लिंकर कमांड का उपयोग करने पर विचार करें
एक लिपि से भाषा। नोट: बीच में कोई सफेद जगह नहीं होनी चाहिए प्रतीक,
बराबर चिह्न (``=''), तथा अभिव्यक्ति.

--डीमंगल[=अंदाज]
--नो-डेमंगल
ये विकल्प नियंत्रित करते हैं कि त्रुटि संदेशों और अन्य में प्रतीक नामों को अलग करना है या नहीं
आउटपुट जब लिंकर को डिमंगल करने के लिए कहा जाता है, तो यह प्रतीक नामों को a . में प्रस्तुत करने का प्रयास करता है
पठनीय फैशन: यदि वे ऑब्जेक्ट फ़ाइल द्वारा उपयोग किए जाते हैं तो यह प्रमुख अंडरस्कोर को हटा देता है
प्रारूप, और सी ++ मैंगल्ड प्रतीक नामों को उपयोगकर्ता पठनीय नामों में परिवर्तित करता है। विभिन्न
कंपाइलर्स में अलग-अलग मैंगलिंग स्टाइल होते हैं। वैकल्पिक demangling शैली तर्क कर सकते हैं
अपने कंपाइलर के लिए उपयुक्त डीमैंगलिंग शैली चुनने के लिए उपयोग किया जाता है। लिंकर होगा
डिफ़ॉल्ट रूप से विघटित करें जब तक कि पर्यावरण चर न हो COLLECT_NO_DEMANGLE सेट है। इन
विकल्पों का उपयोग डिफ़ॉल्ट को ओवरराइड करने के लिए किया जा सकता है।

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

--घातक-चेतावनी
सभी चेतावनियों को त्रुटियों के रूप में मानें।

--बल-एक्सई-प्रत्यय
सुनिश्चित करें कि आउटपुट फ़ाइल में .exe प्रत्यय है।

यदि पूरी तरह से लिंक की गई सफलतापूर्वक निर्मित आउटपुट फ़ाइल में ".exe" या ".dll" नहीं है
प्रत्यय, यह विकल्प लिंकर को आउटपुट फ़ाइल को उसी नाम से कॉपी करने के लिए बाध्य करता है
एक ".exe" प्रत्यय के साथ। यह विकल्प तब उपयोगी होता है जब a . पर अनमॉडिफाइड यूनिक्स मेकफाइल्स का उपयोग किया जाता है
Microsoft Windows होस्ट, क्योंकि Windows के कुछ संस्करण छवि को तब तक नहीं चलाएंगे जब तक कि
एक ".exe" प्रत्यय में समाप्त होता है।

--नो-जीसी-सेक्शन
--gc-सेक्शन
अप्रयुक्त इनपुट अनुभागों का कचरा संग्रहण सक्षम करें। इसे करने वाले लक्ष्यों पर ध्यान नहीं दिया जाता है
इस विकल्प का समर्थन नहीं करते। यह विकल्प संगत नहीं है -r. डिफ़ॉल्ट व्यवहार
(कचरा संग्रह नहीं करने का) निर्दिष्ट करके बहाल किया जा सकता है
--नो-जीसी-सेक्शन कमांड लाइन पर।

--मदद
मानक आउटपुट पर कमांड-लाइन विकल्पों का सारांश प्रिंट करें और बाहर निकलें।

--लक्ष्य-सहायता
मानक आउटपुट पर सभी लक्ष्य विशिष्ट विकल्पों का सारांश प्रिंट करें और बाहर निकलें।

-नक्शा मैपफाइल
फ़ाइल के लिए एक लिंक मैप प्रिंट करें मैपफाइल. का वर्णन देखें -M विकल्प, ऊपर।

--नो-कीप-मेमोरी
ld सामान्य रूप से के प्रतीक तालिकाओं को कैशिंग करके स्मृति उपयोग पर गति के लिए अनुकूलित करता है
स्मृति में इनपुट फ़ाइलें। यह विकल्प बताता है ld इसके बजाय स्मृति उपयोग के लिए अनुकूलित करने के लिए
आवश्यकतानुसार प्रतीक तालिकाओं को फिर से पढ़ना। इसकी आवश्यकता हो सकती है यदि ld से खाली हो जाता है
एक बड़े निष्पादन योग्य को जोड़ने के दौरान मेमोरी स्पेस।

--नहीं-अपरिभाषित
-z डीएफएस
नियमित ऑब्जेक्ट फ़ाइलों से अनसुलझे प्रतीक संदर्भों की रिपोर्ट करें। यह किया जाता है भले ही
लिंकर एक गैर-प्रतीकात्मक साझा पुस्तकालय बना रहा है। बटन
--[नहीं-]अनुमति-श्लिब-अपरिभाषित अनसुलझे रिपोर्टिंग के व्यवहार को नियंत्रित करता है
लिंक किए जा रहे साझा पुस्तकालयों में पाए गए संदर्भ।

--अनुमति दें-एकाधिक-परिभाषा
-z मुल्डेफ़्स
आम तौर पर जब एक प्रतीक को कई बार परिभाषित किया जाता है, तो लिंकर एक घातक रिपोर्ट करेगा
त्रुटि। ये विकल्प कई परिभाषाओं की अनुमति देते हैं और पहली परिभाषा का उपयोग किया जाएगा।

--अनुमति-श्लिब-अपरिभाषित
--नो-अनुमति-श्लिब-अपरिभाषित
साझा पुस्तकालयों में अपरिभाषित प्रतीकों की अनुमति देता है (डिफ़ॉल्ट) या अस्वीकार करता है। यह स्विच
के समान है --नहीं-अपरिभाषित सिवाय इसके कि यह व्यवहार को निर्धारित करता है जब
अपरिभाषित प्रतीक नियमित ऑब्जेक्ट फ़ाइल के बजाय साझा लाइब्रेरी में होते हैं। ऐसा होता है
नियमित ऑब्जेक्ट फ़ाइलों में अपरिभाषित प्रतीकों को कैसे नियंत्रित किया जाता है, इसे प्रभावित नहीं करते हैं।

कारण यह है कि --अनुमति-श्लिब-अपरिभाषित डिफ़ॉल्ट है कि साझा पुस्तकालय
लिंक समय पर निर्दिष्ट किया जा रहा है जो लोड पर उपलब्ध होने के समान नहीं हो सकता है
समय, इसलिए प्रतीक वास्तव में लोड समय पर हल करने योग्य हो सकते हैं। इसके अलावा कुछ हैं
सिस्टम, (जैसे बीओएस) जहां साझा पुस्तकालयों में अपरिभाषित प्रतीक सामान्य हैं। (कर्नेल
लोड समय पर उन्हें पैच करता है यह चुनने के लिए कि कौन सा फ़ंक्शन वर्तमान के लिए सबसे उपयुक्त है
वास्तुकला। इसका उपयोग उदाहरण के लिए गतिशील रूप से उपयुक्त मेमसेट का चयन करने के लिए किया जाता है
समारोह)। जाहिरा तौर पर एचपीपीए साझा पुस्तकालयों के लिए अपरिभाषित होना भी सामान्य है
प्रतीकों।

--नहीं-अपरिभाषित-संस्करण
आम तौर पर जब किसी प्रतीक का अपरिभाषित संस्करण होता है, तो लिंकर इसे अनदेखा कर देगा। इस
विकल्प अपरिभाषित संस्करण वाले प्रतीकों को अस्वीकार करता है और एक घातक त्रुटि जारी की जाएगी
बजाय.

--डिफ़ॉल्ट-सिम्वर
असंक्रमित निर्यातित प्रतीकों के लिए एक डिफ़ॉल्ट प्रतीक संस्करण (सोनम) बनाएं और उसका उपयोग करें।

--डिफ़ॉल्ट-आयातित-सिम्वर
अपरिवर्तित आयातित प्रतीकों के लिए एक डिफ़ॉल्ट प्रतीक संस्करण (सोनम) बनाएं और उसका उपयोग करें।

--नो-चेतावनी-बेमेल
सामान्य रूप से ld यदि आप इनपुट फ़ाइलों को एक साथ जोड़ने का प्रयास करते हैं तो एक त्रुटि देगा:
किसी कारण से बेमेल, शायद इसलिए कि उन्हें अलग-अलग के लिए संकलित किया गया है
प्रोसेसर या विभिन्न अंतहीनता के लिए। यह विकल्प बताता है ld कि यह होना चाहिए
ऐसी संभावित त्रुटियों को चुपचाप अनुमति दें। इस विकल्प का उपयोग केवल सावधानी से किया जाना चाहिए, में
ऐसे मामले जब आपने कुछ विशेष कार्रवाई की है जो सुनिश्चित करती है कि लिंकर त्रुटियां हैं
अनुचित.

--नहीं-संपूर्ण-संग्रह
के प्रभाव को बंद करें --whole-संग्रह बाद की संग्रह फ़ाइलों के लिए विकल्प।

--निष्क्रिय-निष्पादन
निष्पादन योग्य आउटपुट फ़ाइल को तब भी बनाए रखें जब भी वह अभी भी प्रयोग करने योग्य हो। आम तौर पर, लिंकर
लिंक प्रक्रिया के दौरान त्रुटियों का सामना करने पर आउटपुट फ़ाइल नहीं देगा; यह
आउटपुट फ़ाइल लिखने के बिना बाहर निकलता है जब यह कोई त्रुटि जारी करता है।

-नोस्टडलिब
केवल कमांड लाइन पर स्पष्ट रूप से निर्दिष्ट लाइब्रेरी निर्देशिका खोजें। पुस्तकालय
लिंकर स्क्रिप्ट में निर्दिष्ट निर्देशिकाएं (इस पर निर्दिष्ट लिंकर स्क्रिप्ट सहित)
कमांड लाइन) को नजरअंदाज कर दिया जाता है।

--oformat आउटपुट स्वरूप
ld एक से अधिक प्रकार की ऑब्जेक्ट फ़ाइल का समर्थन करने के लिए कॉन्फ़िगर किया जा सकता है। यदि तुम्हारा ld is
इस तरह से कॉन्फ़िगर किया गया है, आप इसका उपयोग कर सकते हैं --oformat के लिए द्विआधारी प्रारूप निर्दिष्ट करने का विकल्प
आउटपुट ऑब्जेक्ट फ़ाइल। यहां तक ​​कि जब ld वैकल्पिक वस्तु का समर्थन करने के लिए कॉन्फ़िगर किया गया है
प्रारूप, आपको आमतौर पर इसे निर्दिष्ट करने की आवश्यकता नहीं होती है, जैसे ld उत्पादन करने के लिए कॉन्फ़िगर किया जाना चाहिए
डिफ़ॉल्ट आउटपुट स्वरूप के रूप में प्रत्येक मशीन पर सबसे सामान्य स्वरूप। आउटपुट स्वरूप एक
टेक्स्ट स्ट्रिंग, बीएफडी पुस्तकालयों द्वारा समर्थित एक विशेष प्रारूप का नाम। (आप ऐसा कर सकते हैं
के साथ उपलब्ध बाइनरी प्रारूपों की सूची बनाएं ओब्जडम्प -i।) स्क्रिप्ट कमांड
"OUTPUT_FORMAT" आउटपुट स्वरूप को भी निर्दिष्ट कर सकता है, लेकिन यह विकल्प इसे ओवरराइड करता है।

-पाई
--तस्वीर-निष्पादन योग्य
एक स्वतंत्र निष्पादन योग्य स्थिति बनाएँ। यह वर्तमान में केवल ELF पर समर्थित है
मंच। स्थिति स्वतंत्र निष्पादन योग्य उस में साझा पुस्तकालयों के समान हैं
उन्हें डायनामिक लिंकर द्वारा वर्चुअल पते पर स्थानांतरित कर दिया जाता है जिसे ओएस चुनता है
उन्हें (जो आमंत्रणों के बीच भिन्न हो सकते हैं)। सामान्य गतिशील रूप से जुड़े निष्पादन योग्य की तरह
उन्हें निष्पादित किया जा सकता है और निष्पादन योग्य में परिभाषित प्रतीकों को ओवरराइड नहीं किया जा सकता है
साझा पुस्तकालय।

-क्यूमैजिक
Linux संगतता के लिए इस विकल्प पर ध्यान नहीं दिया जाता है।

-क्यूयू SVR4 संगतता के लिए इस विकल्प पर ध्यान नहीं दिया जाता है।

--आराम करना
मशीन पर निर्भर प्रभावों वाला एक विकल्प। यह विकल्प केवल कुछ पर समर्थित है
लक्ष्य।

कुछ प्लेटफार्मों पर, --आराम करना विकल्प वैश्विक अनुकूलन करता है जो बन जाता है
संभव है जब लिंकर कार्यक्रम में संबोधित करने का समाधान करता है, जैसे आराम का पता
मोड और आउटपुट ऑब्जेक्ट फ़ाइल में नए निर्देशों का संश्लेषण।

कुछ प्लेटफार्मों पर ये लिंक समय वैश्विक अनुकूलन प्रतीकात्मक डिबगिंग कर सकते हैं
परिणामी निष्पादन योग्य असंभव। यह Matsushita . के मामले के लिए जाना जाता है
MN10200 और MN10300 प्रोसेसर का परिवार।

प्लेटफॉर्म पर जहां यह समर्थित नहीं है, --आराम करना स्वीकार किया जाता है, लेकिन अनदेखा कर दिया जाता है।

--रखरखाव-प्रतीक-फ़ाइल फ़ाइल का नाम
को बनाये रखें केवल फ़ाइल में सूचीबद्ध प्रतीक फ़ाइल का नाम, अन्य सभी को त्याग कर। फ़ाइल का नाम
प्रति पंक्ति एक प्रतीक नाम के साथ बस एक सपाट फ़ाइल है। यह विकल्प विशेष रूप से है
वातावरण में उपयोगी (जैसे VxWorks) जहां एक बड़ी वैश्विक प्रतीक तालिका है
रन-टाइम मेमोरी को संरक्षित करने के लिए, धीरे-धीरे संचित।

--रखरखाव-प्रतीक-फ़ाइल कर देता है नहीं अपरिभाषित प्रतीकों, या प्रतीकों को त्यागें
स्थान परिवर्तन।

आप केवल निर्दिष्ट कर सकते हैं --रखरखाव-प्रतीक-फ़ाइल एक बार कमांड लाइन में। यह ओवरराइड करता है -s
और -S.

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

RSI -रपाथ विकल्प का उपयोग SunOS पर भी किया जा सकता है। डिफ़ॉल्ट रूप से, SunOS पर, लिंकर करेगा
सभी में से एक रनटाइम सर्च पैच बनाएं -L विकल्प दिया है। यदि एक -रपाथ विकल्प
का उपयोग किया जाता है, रनटाइम खोज पथ विशेष रूप से का उपयोग करके बनाया जाएगा -रपाथ विकल्प
अनदेखी कर रहा है -L विकल्प। जीसीसी का उपयोग करते समय यह उपयोगी हो सकता है, जो कई जोड़ता है -L
विकल्प जो NFS माउंटेड फाइल सिस्टम पर हो सकते हैं।

अन्य ईएलएफ लिंकर्स के साथ संगतता के लिए, यदि -R विकल्प के बाद एक निर्देशिका होती है
नाम, फ़ाइल नाम के बजाय, इसे के रूप में माना जाता है -रपाथ विकल्प.

-रपथ-लिंक डीआईआर
ELF या SunOS का उपयोग करते समय, एक साझा पुस्तकालय को दूसरे की आवश्यकता हो सकती है। ऐसा तब होता है जब एक
"ld -shared" लिंक में इनपुट फ़ाइलों में से एक के रूप में एक साझा लाइब्रेरी शामिल है।

जब एक गैर-साझा, गैर-स्थानांतरित करते समय लिंकर ऐसी निर्भरता का सामना करता है
लिंक, यह स्वचालित रूप से आवश्यक साझा पुस्तकालय का पता लगाने और इसे शामिल करने का प्रयास करेगा
लिंक में, अगर इसे स्पष्ट रूप से शामिल नहीं किया गया है। ऐसे मामले में, -रपथ-लिंक विकल्प
खोज के लिए निर्देशिकाओं का पहला सेट निर्दिष्ट करता है। NS -रपथ-लिंक विकल्प निर्दिष्ट कर सकता है
निर्देशिका नामों का एक क्रम या तो अलग किए गए नामों की सूची निर्दिष्ट करके
कोलन, या कई बार प्रकट होने से।

इस विकल्प का उपयोग सावधानी के साथ किया जाना चाहिए क्योंकि यह उस खोज पथ को ओवरराइड करता है जिसमें हो सकता है
एक साझा पुस्तकालय में कठिन संकलित किया गया है। ऐसे मामले में इसका उपयोग करना संभव है
रनटाइम लिंकर की तुलना में अनजाने में एक अलग खोज पथ करेगा।

लिंकर आवश्यक साझा पुस्तकालयों का पता लगाने के लिए निम्नलिखित खोज पथों का उपयोग करता है।

1. द्वारा निर्दिष्ट कोई निर्देशिका -रपथ-लिंक विकल्प.

2. द्वारा निर्दिष्ट कोई निर्देशिका -रपाथ विकल्प। बीच में अंतर -रपाथ और
-रपथ-लिंक क्या वह निर्देशिका द्वारा निर्दिष्ट है -रपाथ विकल्पों में शामिल हैं
निष्पादन योग्य और रनटाइम पर उपयोग किया जाता है, जबकि -रपथ-लिंक विकल्प ही प्रभावी है
लिंक समय पर। यह केवल देशी लिंकर के लिए है।

3. एक ईएलएफ प्रणाली पर, यदि -रपाथ और "rpath-link" विकल्पों का उपयोग नहीं किया गया था, खोजें
पर्यावरण चर "LD_RUN_PATH" की सामग्री। यह देशी लिंकर के लिए है
केवल.

4. सनोस पर, यदि -रपाथ विकल्प का उपयोग नहीं किया गया था, निर्दिष्ट किसी भी निर्देशिका को खोजें
का उपयोग -L विकल्प.

5. एक मूल लिंकर के लिए, पर्यावरण चर "LD_LIBRARY_PATH" की सामग्री।

6. एक देशी ईएलएफ लिंकर के लिए, "DT_RUNPATH" या "DT_RPATH" में निर्देशिका साझा की गई
इसके लिए आवश्यक साझा पुस्तकालयों के लिए पुस्तकालय की खोज की जाती है। "DT_RPATH" प्रविष्टियां हैं
अगर "DT_RUNPATH" प्रविष्टियां मौजूद हैं तो अनदेखा कर दिया गया।

7. डिफ़ॉल्ट निर्देशिका, सामान्य रूप से / दायित्व और / Usr / lib.

8. एक ईएलएफ सिस्टम पर एक देशी लिंकर के लिए, अगर फाइल /etc/ld.so.conf मौजूद है, सूची
उस फ़ाइल में मिली निर्देशिकाओं की।

यदि आवश्यक साझा लाइब्रेरी नहीं मिलती है, तो लिंकर एक चेतावनी जारी करेगा और
लिंक के साथ जारी रखें।

कमरा साझा
- साझा करने योग्य
एक साझा पुस्तकालय बनाएँ। यह वर्तमान में केवल ELF, XCOFF और SunOS पर समर्थित है
मंच। SunOS पर, लिंकर स्वचालित रूप से एक साझा पुस्तकालय बना देगा यदि -e
विकल्प का उपयोग नहीं किया गया है और लिंक में अपरिभाषित प्रतीक हैं।

--सॉर्ट-कॉमन
यह विकल्प बताता है ld सामान्य प्रतीकों को आकार के आधार पर छाँटने के लिए जब यह उन्हें में रखता है
उपयुक्त आउटपुट अनुभाग। पहले सभी एक बाइट सिंबल आएं, फिर सभी दो
बाइट, फिर चारों बाइट, और फिर बाकी सब कुछ। यह अंतराल को रोकने के लिए है
संरेखण बाधाओं के कारण प्रतीकों के बीच।

--सॉर्ट-सेक्शन नाम
यह विकल्प "SORT_BY_NAME" को लिंकर में सभी वाइल्डकार्ड अनुभाग पैटर्न पर लागू करेगा
लिपियों.

--सॉर्ट-सेक्शन संरेखण
यह विकल्प "SORT_BY_ALIGNMENT" को सभी वाइल्डकार्ड अनुभाग पैटर्न में लागू करेगा
लिंकर स्क्रिप्ट।

--स्प्लिट-बाय-फाइल [आकार]
के समान --स्प्लिट-बाय-रिलोक लेकिन प्रत्येक इनपुट फ़ाइल के लिए एक नया आउटपुट सेक्शन बनाता है जब
आकार पहुंच गया। आकार 1 के आकार में चूक यदि नहीं दिया गया है।

--स्प्लिट-बाय-रिलोक [गणना]
आउटपुट फ़ाइल में अतिरिक्त अनुभाग बनाने का प्रयास करता है ताकि कोई एकल आउटपुट अनुभाग न हो
फ़ाइल में से अधिक है गणना स्थान परिवर्तन। विशाल उत्पन्न करते समय यह उपयोगी होता है
सीओएफएफ ऑब्जेक्ट के साथ कुछ वास्तविक समय कर्नेल में डाउनलोड करने के लिए स्थानांतरित करने योग्य फाइलें
फाइल प्रारूप; चूंकि सीओएफएफ एक बार में 65535 से अधिक स्थानांतरणों का प्रतिनिधित्व नहीं कर सकता है
अनुभाग। ध्यान दें कि यह ऑब्जेक्ट फ़ाइल स्वरूपों के साथ काम करने में विफल होगा जो नहीं करते हैं
मनमाने वर्गों का समर्थन करें। लिंकर अलग-अलग इनपुट अनुभागों को विभाजित नहीं करेगा
पुनर्वितरण के लिए, इसलिए यदि किसी एकल इनपुट अनुभाग में से अधिक है गणना स्थानांतरण
एक आउटपुट सेक्शन में कई स्थानान्तरण होंगे। गणना के मान के लिए डिफ़ॉल्ट
32768.

--आँकड़े
लिंकर के संचालन के बारे में आँकड़ों की गणना और प्रदर्शन करें, जैसे निष्पादन
समय और स्मृति का उपयोग।

--सिसरूट=डायरेक्टरी
उपयोग डायरेक्टरी sysroot के स्थान के रूप में, कॉन्फ़िगरेशन-समय डिफ़ॉल्ट को ओवरराइड करते हुए।
यह विकल्प केवल उन लिंकर्स द्वारा समर्थित है जिनका उपयोग करके कॉन्फ़िगर किया गया था --साथ-सिसरूट.

--पारंपरिक प्रारूप
कुछ लक्ष्यों के लिए, का उत्पादन ld कुछ के उत्पादन से कुछ मायनों में अलग है
मौजूदा लिंकर। यह स्विच अनुरोध करता है ld इसके बजाय पारंपरिक प्रारूप का उपयोग करने के लिए।

उदाहरण के लिए, सनोस पर, ld प्रतीक स्ट्रिंग तालिका में डुप्लिकेट प्रविष्टियों को जोड़ती है। इस
पूर्ण डिबगिंग जानकारी के साथ आउटपुट फ़ाइल के आकार को 30 से अधिक तक कम कर सकता है
प्रतिशत। दुर्भाग्य से, SunOS "dbx" प्रोग्राम परिणामी प्रोग्राम को नहीं पढ़ सकता है
("जीडीबी" में कोई परेशानी नहीं है)। NS --पारंपरिक प्रारूप स्विच बताता है ld गठबंधन नहीं करना
डुप्लिकेट प्रविष्टियाँ।

--सेक्शन-स्टार्ट अनुभाग का नाम=org
द्वारा दिए गए निरपेक्ष पते पर आउटपुट फ़ाइल में एक अनुभाग का पता लगाएँ org. आप उपयोग कर सकते है
इस विकल्प को जितनी बार आवश्यक हो कमांड में एक से अधिक अनुभागों का पता लगाने के लिए
लाइन. org एक एकल हेक्साडेसिमल पूर्णांक होना चाहिए; अन्य लिंकर्स के साथ संगतता के लिए,
आप अग्रणी को छोड़ सकते हैं 0x आमतौर पर हेक्साडेसिमल मानों से जुड़ा होता है। नोट: वहाँ
बीच में कोई सफेद जगह नहीं होनी चाहिए अनुभाग का नाम, बराबर चिह्न (``=''), तथा org.

-तब्स्स org
-टीडेटा org
-टेक्स्ट org
--सेक्शन-स्टार्ट के समान, ".bss", ".data" या ".text" के साथ अनुभाग का नाम.

--अनसुलझे-प्रतीकों=तरीका
निर्धारित करें कि अनसुलझे प्रतीकों को कैसे संभालना है। के लिए चार संभावित मान हैं
तरीका:

सभी की अनदेखी करें
किसी भी अनसुलझे प्रतीकों की रिपोर्ट न करें।

रिपोर्ट-सब
सभी अनसुलझे प्रतीकों की रिपोर्ट करें। यह डिफ़ॉल्ट है।

अनदेखा-इन-ऑब्जेक्ट-फाइलें
साझा पुस्तकालयों में निहित अनसुलझे प्रतीकों की रिपोर्ट करें, लेकिन उन्हें अनदेखा करें
अगर वे नियमित वस्तु फाइलों से आते हैं।

अनदेखा-इन-साझा-libs
नियमित ऑब्जेक्ट फ़ाइलों से आने वाले अनसुलझे प्रतीकों की रिपोर्ट करें, लेकिन उन्हें अनदेखा करें यदि
वे साझा पुस्तकालयों से आते हैं। गतिशील बनाते समय यह उपयोगी हो सकता है
बाइनरी और यह ज्ञात है कि सभी साझा पुस्तकालयों को संदर्भित किया जाना चाहिए
लिंकर की कमांड लाइन पर शामिल हैं।

साझा पुस्तकालयों के व्यवहार को स्वयं द्वारा भी नियंत्रित किया जा सकता है
--[नहीं-]अनुमति-श्लिब-अपरिभाषित विकल्प.

आम तौर पर लिंकर प्रत्येक रिपोर्ट किए गए अनसुलझे प्रतीक के लिए एक त्रुटि संदेश उत्पन्न करेगा
लेकिन विकल्प --चेतावनी-अनसुलझे-प्रतीकों इसे चेतावनी में बदल सकते हैं।

--dll-verbose
--verbose
के लिए संस्करण संख्या प्रदर्शित करें ld और समर्थित लिंकर एमुलेशन को सूचीबद्ध करें। प्रदर्शन
कौन सी इनपुट फाइलें खोली जा सकती हैं और नहीं खोली जा सकती हैं। द्वारा उपयोग की जा रही लिंकर स्क्रिप्ट को प्रदर्शित करें
लिंकर।

--संस्करण-स्क्रिप्ट=संस्करण-स्क्रिप्टफ़ाइल
लिंकर के लिए संस्करण स्क्रिप्ट का नाम निर्दिष्ट करें। यह आमतौर पर तब प्रयोग किया जाता है जब
संस्करण के बारे में अतिरिक्त जानकारी निर्दिष्ट करने के लिए साझा पुस्तकालय बनाना
पुस्तकालय के लिए पदानुक्रम बनाया जा रहा है। यह विकल्प केवल ELF पर अर्थपूर्ण है
प्लेटफॉर्म जो साझा पुस्तकालयों का समर्थन करते हैं।

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

तीन प्रकार के वैश्विक प्रतीक हैं, जिन्हें यहाँ C उदाहरणों द्वारा दर्शाया गया है:

int i = 1;
एक परिभाषा, जो आउटपुट फ़ाइल के आरंभिक डेटा अनुभाग में जाती है।

बाहरी int i;
एक अपरिभाषित संदर्भ, जो स्थान आवंटित नहीं करता है। या तो एक होना चाहिए
कहीं चर के लिए परिभाषा या एक सामान्य प्रतीक।

int i;
एक सामान्य प्रतीक। यदि एक चर के लिए केवल (एक या अधिक) सामान्य प्रतीक हैं,
यह आउटपुट फ़ाइल के अप्रारंभीकृत डेटा क्षेत्र में जाता है। लिंकर विलीन हो जाता है
एक ही चर के लिए एक ही प्रतीक में कई सामान्य प्रतीक। अगर वे हैं
विभिन्न आकारों में, यह सबसे बड़ा आकार चुनता है। लिंकर एक सामान्य प्रतीक बन जाता है
एक घोषणा में, यदि समान चर की परिभाषा है।

RSI --चेतावनी-आम विकल्प पाँच प्रकार की चेतावनियाँ उत्पन्न कर सकता है। प्रत्येक चेतावनी में शामिल हैं
पंक्तियों की एक जोड़ी: पहला अभी सामने आए प्रतीक का वर्णन करता है, और दूसरा
एक ही नाम के साथ सामने आए पिछले प्रतीक का वर्णन करता है। दोनों में से एक या दोनों
प्रतीक एक सामान्य प्रतीक होंगे।

1. एक सामान्य प्रतीक को संदर्भ में बदलना, क्योंकि पहले से ही एक परिभाषा है
प्रतीक के लिए।

( ): चेतावनी: ` . का सामान्य '
परिभाषा के अनुसार ओवरराइड
( ): चेतावनी: यहाँ परिभाषित

2. एक सामान्य प्रतीक को संदर्भ में बदलना, क्योंकि के लिए बाद की परिभाषा
प्रतीक का सामना करना पड़ता है। यह पिछले मामले जैसा ही है, सिवाय इसके कि
प्रतीकों को एक अलग क्रम में सामना करना पड़ता है।

( ): चेतावनी: ` . की परिभाषा '
ओवरराइडिंग कॉमन
( ): चेतावनी: आम यहाँ है

3. एक सामान्य प्रतीक को पिछले समान आकार के सामान्य प्रतीक के साथ मिलाना।

( ): चेतावनी: एकाधिक सामान्य
का '
( ): चेतावनी: पिछला आम यहाँ है

4. एक सामान्य प्रतीक को पिछले बड़े सामान्य प्रतीक के साथ मिलाना।

( ): चेतावनी: ` . का सामान्य '
बड़े सामान्य द्वारा ओवरराइड किया गया
( ): चेतावनी: बड़ा आम यहाँ है

5. एक सामान्य प्रतीक को पिछले छोटे सामान्य प्रतीक के साथ मिलाना। यह बिल्कुल वैसा है
पिछले मामले की तरह, सिवाय इसके कि प्रतीकों का सामना एक अलग तरीके से होता है
आदेश.

( ): चेतावनी: ` . का सामान्य '
छोटे सामान्य ओवरराइडिंग
( ): चेतावनी: छोटा आम यहाँ है

--चेतावनी-निर्माता
चेतावनी दें कि क्या किसी वैश्विक कंस्ट्रक्टर का उपयोग किया जाता है। यह केवल कुछ ऑब्जेक्ट फ़ाइल के लिए उपयोगी है
प्रारूप। सीओएफएफ या ईएलएफ जैसे प्रारूपों के लिए, लिंकर वैश्विक के उपयोग का पता नहीं लगा सकता है
रचनाकार।

--चेतावनी-एकाधिक-जीपी
चेतावनी दें कि आउटपुट फ़ाइल में एकाधिक वैश्विक सूचक मान आवश्यक हैं। यह केवल .... ही
अल्फा जैसे कुछ प्रोसेसर के लिए सार्थक। विशेष रूप से, कुछ प्रोसेसर
एक विशेष खंड में बड़े-मूल्यवान स्थिरांक डालें। एक विशेष रजिस्टर (वैश्विक
सूचक) इस खंड के मध्य में इंगित करता है, ताकि स्थिरांक लोड किए जा सकें
बेस-रजिस्टर रिलेटिव एड्रेसिंग मोड के माध्यम से कुशलतापूर्वक। बेस में ऑफसेट के बाद से-
रजिस्टर सापेक्ष मोड निश्चित और अपेक्षाकृत छोटा है (उदाहरण के लिए, 16 बिट), यह सीमित करता है
निरंतर पूल का अधिकतम आकार। इस प्रकार, बड़े कार्यक्रमों में, यह अक्सर आवश्यक होता है
सभी संभव को संबोधित करने में सक्षम होने के लिए एकाधिक वैश्विक सूचक मानों का उपयोग करें
स्थिरांक इस विकल्प के कारण जब भी ऐसी स्थिति आती है तो चेतावनी जारी की जाती है।

--चेतावनी-एक बार
प्रत्येक अपरिभाषित प्रतीक के लिए केवल एक बार चेतावनी दें, न कि प्रति मॉड्यूल एक बार जो संदर्भित करता है
यह।

--चेतावनी-अनुभाग-संरेखण
संरेखण के कारण आउटपुट अनुभाग का पता बदल जाने पर चेतावनी दें। आमतौर पर,
संरेखण एक इनपुट अनुभाग द्वारा निर्धारित किया जाएगा। पता तभी बदला जाएगा जब यह
स्पष्ट रूप से निर्दिष्ट नहीं; अर्थात्, यदि "सेक्शन" कमांड प्रारंभ निर्दिष्ट नहीं करता है
अनुभाग के लिए पता।

--चेतावनी-साझा-पाठ्यक्रम
चेतावनी दें कि लिंकर किसी साझा ऑब्जेक्ट में DT_TEXTREL जोड़ता है।

--चेतावनी-अनसुलझे-प्रतीकों
यदि लिंकर एक अनसुलझे प्रतीक की रिपोर्ट करने जा रहा है (विकल्प देखें
--अनसुलझे-प्रतीकों) यह सामान्य रूप से एक त्रुटि उत्पन्न करेगा। यह विकल्प इसे बनाता है
इसके बजाय एक चेतावनी उत्पन्न करें।

--त्रुटि-अनसुलझे-प्रतीक
यह रिपोर्ट करते समय लिंकर के त्रुटि उत्पन्न करने के डिफ़ॉल्ट व्यवहार को पुनर्स्थापित करता है
अनसुलझे प्रतीक।

--whole-संग्रह
के बाद कमांड लाइन पर उल्लिखित प्रत्येक संग्रह के लिए --whole-संग्रह विकल्प,
खोज करने के बजाय, संग्रह में प्रत्येक ऑब्जेक्ट फ़ाइल को लिंक में शामिल करें
आवश्यक वस्तु फ़ाइलों के लिए संग्रह। यह आमतौर पर एक संग्रह फ़ाइल को चालू करने के लिए प्रयोग किया जाता है
एक साझा पुस्तकालय में, प्रत्येक वस्तु को परिणामी साझा में शामिल करने के लिए मजबूर करना
पुस्तकालय। इस विकल्प का उपयोग एक से अधिक बार किया जा सकता है।

जीसीसी से इस विकल्प का उपयोग करते समय दो नोट: पहला, जीसीसी को इस विकल्प के बारे में पता नहीं है,
तो आपको उपयोग करना होगा -Wl, -संपूर्ण-संग्रह. दूसरा, उपयोग करना न भूलें
-Wl,-नहीं-संपूर्ण-संग्रह आपके संग्रह की सूची के बाद, क्योंकि जीसीसी अपनी सूची जोड़ देगा
आपके लिंक के अभिलेखागार और आप नहीं चाहते कि यह ध्वज उन पर भी प्रभाव डाले।

--रैप प्रतीक
के लिए रैपर फ़ंक्शन का उपयोग करें प्रतीक. कोई अपरिभाषित संदर्भ प्रतीक हल हो जाएगा
लपेटने के लिए_प्रतीक". "__real_" के लिए कोई अपरिभाषित संदर्भप्रतीक" करने के लिए हल किया जाएगा
प्रतीक.

इसका उपयोग सिस्टम फ़ंक्शन के लिए एक आवरण प्रदान करने के लिए किया जा सकता है। आवरण समारोह
"__wrap_" कहा जाना चाहिएप्रतीक". यदि वह सिस्टम फ़ंक्शन को कॉल करना चाहता है, तो उसे चाहिए
कॉल करें "__असली_प्रतीक".

यहाँ एक तुच्छ उदाहरण है:

शून्य *
__wrap_malloc (size_t c)
{
प्रिंटफ ("मॉलोक को %zu\n", c);
वापसी __real_malloc (सी);
}

यदि आप अन्य कोड को इस फ़ाइल के साथ लिंक करते हैं --रैप malloc, फिर सभी "मॉलोक" को कॉल करते हैं
इसके बजाय फ़ंक्शन "__wrap_malloc" को कॉल करेगा। "__real_malloc" में कॉल करें
"__wrap_malloc" वास्तविक "मॉलोक" फ़ंक्शन को कॉल करेगा।

आप एक "__real_malloc" फ़ंक्शन भी प्रदान करना चाह सकते हैं, ताकि लिंक के बिना
--रैप विकल्प सफल होगा। यदि आप ऐसा करते हैं, तो आपको की परिभाषा नहीं रखनी चाहिए
"__real_malloc" उसी फ़ाइल में "__wrap_malloc" के रूप में; यदि आप करते हैं, तो असेंबलर हो सकता है
लिंकर को इसे "मॉलोक" में लपेटने का मौका मिलने से पहले कॉल को हल करें।

--सक्षम-नया-dtags
--अक्षम-नया-dtags
यह लिंकर ईएलएफ में नए डायनामिक टैग बना सकता है। लेकिन पुराने ईएलएफ सिस्टम नहीं हो सकते हैं
उन्हें समझें। यदि आप निर्दिष्ट करते हैं --सक्षम-नया-dtags, डायनामिक टैग बनाए जाएंगे
जैसी जरूरत थी। यदि आप निर्दिष्ट करते हैं --अक्षम-नया-dtags, कोई नया डायनामिक टैग नहीं बनाया जाएगा।
डिफ़ॉल्ट रूप से, नए डायनामिक टैग नहीं बनाए जाते हैं। ध्यान दें कि वे विकल्प ही हैं
ईएलएफ सिस्टम के लिए उपलब्ध है।

--हैश-आकार=संख्या
लिंकर के हैश टेबल के डिफ़ॉल्ट आकार को एक अभाज्य संख्या के करीब सेट करें संख्या.
इस मान को बढ़ाने से लिंकर को अपना प्रदर्शन करने में लगने वाला समय कम हो सकता है
कार्य, लिंकर की स्मृति आवश्यकताओं को बढ़ाने की कीमत पर। उसी प्रकार
इस मान को कम करने से गति की कीमत पर स्मृति आवश्यकताओं को कम किया जा सकता है।

--कम-स्मृति-उपरिव्यय
यह विकल्प लिंकिंग की कीमत पर एलडी रनटाइम पर स्मृति आवश्यकताओं को कम करता है
गति। यह लिंक मैप फ़ाइल के लिए पुराने O(n^2) एल्गोरिथम का चयन करने के लिए पेश किया गया था
नए O(n) एल्गोरिथम के बजाय जो के लिए लगभग 40% अधिक मेमोरी का उपयोग करता है
प्रतीक भंडारण।

स्विच का एक अन्य प्रभाव डिफ़ॉल्ट हैश तालिका आकार को 1021 पर सेट करना है, जो
लिंकर के रन टाइम को लंबा करने की कीमत पर फिर से मेमोरी बचाता है। यह नहीं किया गया है
हालांकि अगर --हैश-आकार स्विच का प्रयोग किया गया है।

RSI --कम-स्मृति-उपरिव्यय स्विच का उपयोग अन्य ट्रेडऑफ़ को सक्षम करने के लिए भी किया जा सकता है
लिंकर के भविष्य के संस्करण।

i386 पीई लिंकर का समर्थन करता है कमरा साझा विकल्प, जिसके कारण आउटपुट a . हो जाता है
सामान्य निष्पादन योग्य के बजाय गतिशील रूप से लिंक्ड लाइब्रेरी (डीएलएल)। आपको नाम देना चाहिए
आउटपुट "*.dll" जब आप इस विकल्प का उपयोग करते हैं। इसके अलावा, लिंकर पूरी तरह से समर्थन करता है
मानक "*.def" फ़ाइलें, जो किसी ऑब्जेक्ट की तरह लिंकर कमांड लाइन पर निर्दिष्ट की जा सकती हैं
फ़ाइल (वास्तव में, यह उन अभिलेखों से पहले होना चाहिए जिनसे यह प्रतीकों का निर्यात करता है, यह सुनिश्चित करने के लिए कि उन्हें मिलता है
एक सामान्य ऑब्जेक्ट फ़ाइल की तरह ही जुड़ा हुआ है)।

सभी लक्ष्यों के लिए सामान्य विकल्पों के अतिरिक्त, i386 PE लिंकर अतिरिक्त समर्थन करता है
i386 PE लक्ष्य के लिए विशिष्ट कमांड लाइन विकल्प। विकल्प जो मान लेते हैं
उनके मूल्यों से एक स्थान या एक समान चिह्न द्वारा अलग किया जा सकता है।

--add-stdcall-उपनाम
यदि दिया गया है, तो एक stdcall प्रत्यय के साथ प्रतीक (@nn) के रूप में निर्यात किया जाएगा और के साथ भी
प्रत्यय छीन लिया। [यह विकल्प लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट है]

--बेस-फाइल पट्टिका
उपयोग पट्टिका एक फ़ाइल के नाम के रूप में जिसमें सभी के आधार पते को सहेजना है
डीएलएल उत्पन्न करने के लिए आवश्यक स्थानांतरण डीएलटूल. [यह एक i386 PE विशिष्ट है
विकल्प]

--dll
एक नियमित निष्पादन योग्य के बजाय एक डीएलएल बनाएं। आप भी इस्तेमाल कर सकते हैं कमरा साझा या निर्दिष्ट करें
किसी दिए गए ".def" फ़ाइल में "लाइब्रेरी"। [यह विकल्प लक्षित i386 PE के लिए विशिष्ट है
लिंकर का बंदरगाह]

--enable-stdcall-fixup
--अक्षम-stdcall-fixup
यदि लिंक को कोई ऐसा प्रतीक मिलता है जिसे वह हल नहीं कर सकता है, तो वह ``अस्पष्ट' करने का प्रयास करेगा
एक अन्य परिभाषित प्रतीक की तलाश करके '' को जोड़ना जो केवल के प्रारूप में भिन्न होता है
प्रतीक नाम (cdecl बनाम stdcall) और उस प्रतीक को मैच से जोड़कर हल करेगा।
उदाहरण के लिए, अपरिभाषित प्रतीक "_foo" को "_foo@12" फ़ंक्शन से जोड़ा जा सकता है, या
अपरिभाषित प्रतीक "_bar@16" को फ़ंक्शन "_bar" से जोड़ा जा सकता है। जब
लिंकर ऐसा करता है, यह एक चेतावनी प्रिंट करता है, क्योंकि इसे सामान्य रूप से लिंक करने में विफल होना चाहिए था,
लेकिन कभी-कभी तृतीय-पक्ष dll से उत्पन्न पुस्तकालयों को आयात करने के लिए इस सुविधा की आवश्यकता हो सकती है
प्रयोग करने योग्य होना। यदि आप निर्दिष्ट करते हैं --enable-stdcall-fixup, यह सुविधा पूरी तरह से सक्षम है
और चेतावनियां मुद्रित नहीं हैं। यदि आप निर्दिष्ट करते हैं --अक्षम-stdcall-fixup, यह सुविधा है
अक्षम और इस तरह के बेमेल को त्रुटि माना जाता है। [यह विकल्प इसके लिए विशिष्ट है
लिंकर का i386 PE लक्षित पोर्ट]

--निर्यात-सभी-प्रतीकों
यदि दिया गया है, तो डीएलएल बनाने के लिए उपयोग की जाने वाली वस्तुओं में सभी वैश्विक प्रतीकों को निर्यात किया जाएगा
डीएलएल। ध्यान दें कि यह डिफ़ॉल्ट है यदि अन्यथा कोई निर्यात नहीं किया जाएगा
प्रतीक जब प्रतीकों को स्पष्ट रूप से डीईएफ फाइलों के माध्यम से निर्यात किया जाता है या स्पष्ट रूप से निर्यात किया जाता है
फ़ंक्शन विशेषताओं के माध्यम से, डिफ़ॉल्ट कुछ और निर्यात नहीं करना है जब तक कि यह विकल्प नहीं है
दिया हुआ है। ध्यान दें कि प्रतीक "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12", और "impure_ptr" स्वचालित रूप से निर्यात नहीं किए जाएंगे। भी,
अन्य डीएलएल से आयात किए गए प्रतीकों को फिर से निर्यात नहीं किया जाएगा, न ही प्रतीकों को निर्दिष्ट किया जाएगा
डीएलएल का आंतरिक लेआउट जैसे "_head_" से शुरू होने वाले या समाप्त होने वाले
"_मेरा बड़ा नाम है"। इसके अलावा, "libgcc", "libstd++", "libmingw32", या . से कोई प्रतीक नहीं है
"crtX.o" निर्यात किया जाएगा। वे प्रतीक जिनके नाम "__rtti_" या "__builtin_" से शुरू होते हैं
निर्यात नहीं किया जाएगा, सी ++ डीएलएल के साथ मदद करने के लिए। अंत में, की एक विस्तृत सूची है
साइबरविन-निजी प्रतीक जो निर्यात नहीं किए जाते हैं (जाहिर है, यह निर्माण करते समय लागू होता है
साइबरविन लक्ष्यों के लिए डीएलएल)। ये साइबरविन-बहिष्कृत हैं: "_cygwin_dll_entry@12",
"_cygwin_crt0_common@8", "_cygwin_noncygwin_dll_entry@12", "_fmode", "_impure_ptr",
"cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2",
"cygwin_premain3", और "वातावरण"। [यह विकल्प लक्षित i386 PE के लिए विशिष्ट है
लिंकर का बंदरगाह]

--बहिष्कृत-प्रतीक प्रतीक,प्रतीक, ...
उन प्रतीकों की सूची निर्दिष्ट करता है जिन्हें स्वचालित रूप से निर्यात नहीं किया जाना चाहिए। प्रतीक
नामों को अल्पविराम या कोलन द्वारा सीमांकित किया जा सकता है। [यह विकल्प i386 PE के लिए विशिष्ट है
लिंकर का लक्षित बंदरगाह]

--फ़ाइल-संरेखण
फ़ाइल संरेखण निर्दिष्ट करें। फ़ाइल में अनुभाग हमेशा फ़ाइल ऑफ़सेट से प्रारंभ होंगे
जो इस संख्या के गुणज हैं। यह डिफ़ॉल्ट रूप से 512 है। [यह विकल्प विशिष्ट है
लिंकर के i386 PE लक्षित पोर्ट पर]

--ढेर रिज़र्व
--ढेर रिज़र्व,करना
आरक्षित करने के लिए स्मृति की मात्रा निर्दिष्ट करें (और वैकल्पिक रूप से प्रतिबद्ध) के लिए ढेर के रूप में उपयोग करने के लिए
यह कार्यक्रम। डिफ़ॉल्ट 1Mb आरक्षित है, 4K प्रतिबद्ध है। [यह विकल्प विशिष्ट है
लिंकर का i386 PE लक्षित पोर्ट]

--छवि-आधार मूल्य
उपयोग मूल्य आपके प्रोग्राम या dll के मूल पते के रूप में। यह सबसे कम मेमोरी है
स्थान जो आपके प्रोग्राम या डीएल लोड होने पर उपयोग किया जाएगा। आवश्यकता को कम करने के लिए
स्थानांतरित करें और अपने डीएलएस के प्रदर्शन में सुधार करें, प्रत्येक के पास एक अद्वितीय आधार पता होना चाहिए
और किसी अन्य dll को ओवरलैप न करें। निष्पादन योग्य के लिए डिफ़ॉल्ट 0x400000 है, और
डीएलएस के लिए 0x10000000। [यह विकल्प i386 PE लक्षित पोर्ट के लिए विशिष्ट है
लिंकर]

--मार-एट
यदि दिया गया है, तो stdcall प्रत्यय (@nn) उनके होने से पहले प्रतीकों से हटा दिया जाएगा
निर्यात किया। [यह विकल्प लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट है]

--बड़े-पते-जागरूक
यदि दिया गया है, तो सीओएफएफ हेडर के ``चरित्र'' क्षेत्र में उपयुक्त बिट है
यह इंगित करने के लिए सेट करें कि यह निष्पादन योग्य 2 . से अधिक आभासी पतों का समर्थन करता है
गीगाबाइट्स इसका उपयोग /3GB या /USERVA= . के संयोजन में किया जाना चाहिएमूल्य मेगाबाइट
BOOT.INI के ``[ऑपरेटिंग सिस्टम]'' अनुभाग में स्विच करें। अन्यथा, यह बिट
कोई प्रभाव नहीं है। [यह विकल्प लिंकर के पीई लक्षित बंदरगाहों के लिए विशिष्ट है]

--प्रमुख-छवि-संस्करण मूल्य
``छवि संस्करण'' की प्रमुख संख्या सेट करता है। डिफ़ॉल्ट के लिए 1. [यह विकल्प है
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट]

--मेजर-ओएस-संस्करण मूल्य
``os संस्करण'' की प्रमुख संख्या निर्धारित करता है। 4 के लिए डिफ़ॉल्ट। [यह विकल्प विशिष्ट है
लिंकर के i386 PE लक्षित पोर्ट पर]

--मेजर-सबसिस्टम-संस्करण मूल्य
``सबसिस्टम संस्करण'' की प्रमुख संख्या सेट करता है। डिफॉल्ट से 4. [यह विकल्प है
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट]

--मामूली-छवि-संस्करण मूल्य
``छवि संस्करण'' की छोटी संख्या सेट करता है। डिफ़ॉल्ट 0. [यह विकल्प है
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट]

--माइनर-ओएस-संस्करण मूल्य
``os संस्करण'' की छोटी संख्या सेट करता है। डिफ़ॉल्ट 0. [यह विकल्प विशिष्ट है
लिंकर के i386 PE लक्षित पोर्ट पर]

--माइनर-सबसिस्टम-संस्करण मूल्य
``सबसिस्टम संस्करण'' की छोटी संख्या सेट करता है। डिफ़ॉल्ट 0. [यह विकल्प है
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट]

--आउटपुट-डिफ पट्टिका
लिंकर फ़ाइल बनाएगा पट्टिका जिसमें के अनुरूप एक डीईएफ फाइल होगी
डीएलएल लिंकर उत्पन्न कर रहा है। यह DEF फ़ाइल (जिसे "*.def" कहा जाना चाहिए) हो सकता है
"dlltool" के साथ एक आयात पुस्तकालय बनाने के लिए इस्तेमाल किया जा सकता है या संदर्भ के रूप में इस्तेमाल किया जा सकता है
स्वचालित रूप से या परोक्ष रूप से निर्यात किए गए प्रतीक। [यह विकल्प i386 PE के लिए विशिष्ट है
लिंकर का लक्षित बंदरगाह]

--आउट-इम्प्लिब पट्टिका
लिंकर फ़ाइल बनाएगा पट्टिका जिसमें के अनुरूप एक आयात lib होगा
डीएलएल लिंकर उत्पन्न कर रहा है। यह आयात परिवाद (जिसे "*.dll.a" या . कहा जाना चाहिए
"*.a" का उपयोग क्लाइंट को जेनरेट किए गए DLL से जोड़ने के लिए किया जा सकता है; यह व्यवहार इसे बनाता है
एक अलग "dlltool" आयात पुस्तकालय निर्माण चरण को छोड़ना संभव है। [यह विकल्प है
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट]

--सक्षम-ऑटो-छवि-आधार
डीएलएल के लिए स्वचालित रूप से छवि आधार चुनें, जब तक कि एक का उपयोग करके निर्दिष्ट न किया गया हो
"--छवि-आधार" तर्क। अद्वितीय बनाने के लिए dllname से उत्पन्न हैश का उपयोग करके
प्रत्येक डीएलएल के लिए छवि आधार, इन-मेमोरी टकराव और स्थानांतरण जो कार्यक्रम में देरी कर सकते हैं
निष्पादन से बचा जाता है। [यह विकल्प i386 PE लक्षित पोर्ट के लिए विशिष्ट है
लिंकर]

--अक्षम-ऑटो-छवि-आधार
एक अद्वितीय छवि आधार स्वचालित रूप से उत्पन्न न करें। यदि कोई उपयोगकर्ता-निर्दिष्ट नहीं है
छवि आधार ("--छवि-आधार") फिर प्लेटफ़ॉर्म डिफ़ॉल्ट का उपयोग करें। [यह विकल्प विशिष्ट है
लिंकर के i386 PE लक्षित पोर्ट पर]

--dll-खोज-उपसर्ग स्ट्रिंग
एक आयात पुस्तकालय के बिना एक डीएलएल को गतिशील रूप से लिंक करते समय, खोजें
" .dll" वरीयता में "lib ." .dll"। यह व्यवहार अनुमति देता है
विभिन्न "सबप्लेटफॉर्म" के लिए निर्मित डीएलएल के बीच आसान अंतर: देशी, साइबरविन,
uwin, pw, आदि। उदाहरण के लिए, cygwin DLL आमतौर पर "--dll-search-prefix=cyg" का उपयोग करते हैं।
[यह विकल्प लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट है]

--सक्षम-ऑटो-आयात
डीएलएल से डेटा आयात के लिए "_symbol" को "__imp__symbol" से परिष्कृत लिंकिंग करें,
और आयात पुस्तकालयों का निर्माण करते समय आवश्यक थंकिंग प्रतीक बनाएं
उन डेटा निर्यात। नोट: 'ऑटो-इम्पोर्ट' एक्सटेंशन का उपयोग टेक्स्ट का कारण बनेगा
छवि फ़ाइल के अनुभाग को लिखने योग्य बनाया जाना है। यह पीई-कॉफ के अनुरूप नहीं है
माइक्रोसॉफ्ट द्वारा प्रकाशित प्रारूप विनिर्देश।

'ऑटो-आयात' का उपयोग करना आम तौर पर 'बस काम करेगा' -- लेकिन कभी-कभी आप इसे देख सकते हैं
संदेश:

"वैरिएबल ' ' को स्वतः आयात नहीं किया जा सकता। कृपया ld's . के लिए दस्तावेज़ीकरण पढ़ें
विवरण के लिए "--enable-auto-import"।"

यह संदेश तब होता है जब कुछ (उप) अभिव्यक्ति अंततः द्वारा दिए गए पते तक पहुंच जाती है
दो स्थिरांक का योग (Win32 आयात तालिका केवल एक की अनुमति देती है)। उदाहरण जहां यह
एक डीएलएल से आयातित संरचना चर के सदस्य क्षेत्रों तक पहुंच शामिल हो सकती है,
साथ ही एक डीएलएल से आयात किए गए सरणी चर में निरंतर अनुक्रमणिका का उपयोग करना। कोई भी
मल्टीवर्ड वेरिएबल (सरणी, संरचना, लंबी लंबी, आदि) इस त्रुटि स्थिति को ट्रिगर कर सकते हैं।
हालांकि, आपत्तिजनक निर्यातित चर के सटीक डेटा प्रकार की परवाह किए बिना, ld
हमेशा इसका पता लगाएं, चेतावनी जारी करें और बाहर निकलें।

डेटा प्रकार की परवाह किए बिना, इस कठिनाई को दूर करने के कई तरीके हैं
निर्यातित चर:

एक तरीका है --enable-runtime-pseudo-reloc स्विच का उपयोग करना। यह का कार्य छोड़ देता है
रनटाइम वातावरण के लिए अपने क्लाइंट कोड में संदर्भ समायोजित करना, इसलिए यह विधि काम करती है
केवल तभी जब रनटाइम वातावरण इस सुविधा का समर्थन करता है।

दूसरा उपाय यह है कि किसी एक 'स्थिरांक' को चर होने के लिए बाध्य किया जाए - अर्थात,
संकलन समय पर अज्ञात और गैर-अनुकूलन योग्य। सरणियों के लिए, दो संभावनाएं हैं:
a) अनुक्रमणिका (सरणी का पता) को एक चर बनाएं, या b) 'स्थिर' अनुक्रमणिका बनाएं
एक परिवर्तनीय। इस प्रकार:

बाहरी प्रकार extern_array [];
बाहरी_अरे [1] -->
{अस्थिर प्रकार *t=extern_array; टी[1] }

or

बाहरी प्रकार extern_array [];
बाहरी_अरे [1] -->
{अस्थिर इंट टी = 1; बाहरी_सरणी [टी] }

Structs (और अधिकांश अन्य मल्टीवर्ड डेटा प्रकार) के लिए एकमात्र विकल्प बनाना है
संरचना स्वयं (या लंबी लंबी, या ...) चर:

बाहरी संरचना एस extern_struct;
बाहरी_संरचना.फ़ील्ड ->
{अस्थिर संरचना s *t=&extern_struct; टी-> फ़ील्ड}

or

बाहरी लंबे लंबे extern_ll;
बाहरी_एल ->
{अस्थिर लंबा लंबा * local_ll=&extern_ll; *लोकल_एल}

इस कठिनाई से निपटने का एक तीसरा तरीका है 'ऑटो-आयात' को छोड़ देना
अपमानजनक प्रतीक और इसे "__declspec(dllimport)" के साथ चिह्नित करें। हालांकि, व्यवहार में कि
यह इंगित करने के लिए कि क्या आप एक डीएलएल बना रहे हैं, संकलन-समय #defines का उपयोग करने की आवश्यकता है,
क्लाइंट कोड बनाना जो डीएलएल से लिंक होगा, या केवल एक स्थिर से निर्माण/लिंकिंग करेगा
पुस्तकालय। 'प्रत्यक्ष' को हल करने के विभिन्न तरीकों के बीच चयन करने में
निरंतर ऑफसेट 'समस्या के साथ पता, आपको सामान्य वास्तविक दुनिया के उपयोग पर विचार करना चाहिए:

मूल:

--foo.h
बाहरी इंट गिरफ्तारी [];
--foo.c
#शामिल "foo.h"
शून्य मुख्य (int argc, char **argv){
प्रिंटफ ("% d \ n", एआर [1]);
}

1 समाधान:

--foo.h
बाहरी इंट गिरफ्तारी [];
--foo.c
#शामिल "foo.h"
शून्य मुख्य (int argc, char **argv){
/* यह समाधान win32 और cygwin के लिए है; "अनुकूलित" न करें */
अस्थिर int * parr = arr;
प्रिंटफ ("% d \ n", पार [1]);
}

2 समाधान:

--foo.h
/* नोट: ऑटो-एक्सपोर्ट माना जाता है (कोई __declspec(dllexport) नहीं) */
#if (परिभाषित(_WIN32) ⎪⎪ परिभाषित(__CYGWIN__)) && \
!(परिभाषित(FOO_BUILD_DLL) ⎪⎪ परिभाषित(FOO_STATIC))
# परिभाषित करें FOO_IMPORT __declspec(dllimport)
#else
#FOO_IMPORT परिभाषित करें
#endif
बाहरी FOO_IMPORT int arr[];
--foo.c
#शामिल "foo.h"
शून्य मुख्य (int argc, char **argv){
प्रिंटफ ("% d \ n", एआर [1]);
}

इस समस्या से बचने का चौथा तरीका है कि आप अपने पुस्तकालय को एक कार्यात्मक का उपयोग करने के लिए फिर से कोड करें
आपत्तिजनक चरों के लिए डेटा इंटरफ़ेस के बजाय इंटरफ़ेस (उदा सेट_फू () और
get_foo() एक्सेसर फ़ंक्शन)। [यह विकल्प i386 PE लक्षित पोर्ट के लिए विशिष्ट है
लिंकर का]

--अक्षम-ऑटो-आयात
डेटा के लिए "_symbol" को "__imp__symbol" से परिष्कृत लिंकिंग करने का प्रयास न करें
डीएलएल से आयात। [यह विकल्प i386 PE लक्षित पोर्ट के लिए विशिष्ट है
लिंकर]

--सक्षम-रनटाइम-छद्म-स्थानांतरण
यदि आपके कोड में --enable-auto-import सेक्शन में वर्णित एक्सप्रेशन हैं, अर्थात,
डीएलएल से गैर-शून्य ऑफसेट के साथ डेटा आयात, यह स्विच एक वेक्टर बनाएगा
'रनटाइम स्यूडो रिलोकेशन' जिसका उपयोग रनटाइम वातावरण द्वारा समायोजित करने के लिए किया जा सकता है
आपके क्लाइंट कोड में ऐसे डेटा के संदर्भ। [यह विकल्प i386 PE के लिए विशिष्ट है
लिंकर का लक्षित बंदरगाह]

--अक्षम-रनटाइम-छद्म-स्थानांतरण
डीएलएल से गैर-शून्य ऑफ़सेट डेटा आयात के लिए छद्म स्थानांतरण न बनाएं। यह है
डिफ़ॉल्ट। [यह विकल्प लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट है]

--सक्षम-अतिरिक्त-पे-डीबग
ऑटो-आयात प्रतीक थंकिंग से संबंधित अतिरिक्त डिबग जानकारी दिखाएं। [यह विकल्प है
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट]

--सेक्शन-संरेखण
अनुभाग संरेखण सेट करता है। मेमोरी में सेक्शन हमेशा उन पतों पर शुरू होंगे जो
इस संख्या के गुणज हैं। 0x1000 के लिए डिफ़ॉल्ट। [यह विकल्प के लिए विशिष्ट है
i386 PE लिंकर का लक्षित पोर्ट]

--ढेर रिज़र्व
--ढेर रिज़र्व,करना
स्टैक के रूप में उपयोग करने के लिए आरक्षित (और वैकल्पिक रूप से प्रतिबद्ध) के लिए मेमोरी की मात्रा निर्दिष्ट करें
इस कार्यक्रम के लिए। डिफ़ॉल्ट 2Mb आरक्षित है, 4K प्रतिबद्ध है। [यह विकल्प है
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट]

--उपप्रणाली कौन कौन से
--उपप्रणाली कौन कौन से:प्रमुख
--उपप्रणाली कौन कौन से:प्रमुख.नाबालिग
उस सबसिस्टम को निर्दिष्ट करता है जिसके तहत आपका प्रोग्राम निष्पादित होगा। के लिए कानूनी मूल्य
कौन कौन से "मूल", "विंडोज़", "कंसोल", "पॉज़िक्स", और "एक्सबॉक्स" हैं। आप वैकल्पिक रूप से सेट कर सकते हैं
सबसिस्टम संस्करण भी। संख्यात्मक मान भी स्वीकार किए जाते हैं कौन कौन से. [इस विकल्प
लिंकर के i386 PE लक्षित पोर्ट के लिए विशिष्ट है]

मेमोरी बैंक को नियंत्रित करने के लिए 68HC11 और 68HC12 लिंकर विशिष्ट विकल्पों का समर्थन करते हैं
मैपिंग और ट्रैम्पोलिन कोड जनरेशन स्विचिंग।

--नो-ट्रैम्पोलिन
यह विकल्प ट्रैम्पोलिन की पीढ़ी को निष्क्रिय कर देता है। डिफ़ॉल्ट रूप से एक ट्रैम्पोलिन है
प्रत्येक दूर के कार्य के लिए उत्पन्न होता है जिसे "jsr" निर्देश का उपयोग करके कहा जाता है (यह
तब होता है जब एक दूर के कार्य के लिए एक सूचक लिया जाता है)।

--बैंक-खिड़की नाम
यह विकल्प लिंकर को मेमोरी क्षेत्र का नाम इंगित करता है स्मृति
विनिर्देश जो मेमोरी बैंक विंडो का वर्णन करता है। ऐसे क्षेत्र की परिभाषा है
फिर लिंकर द्वारा मेमोरी विंडो के भीतर पेजिंग और पतों की गणना करने के लिए उपयोग किया जाता है।

वातावरण


आप का व्यवहार बदल सकते हैं ld पर्यावरण चर "GNUTARGET" के साथ,
"LDEMULATION" और "COLLECT_NO_DEMANGLE"।

यदि आप उपयोग नहीं करते हैं तो "GNUTARGET" इनपुट-फाइल ऑब्जेक्ट प्रारूप को निर्धारित करता है -b (या इसके समानार्थी
--प्रारूप) इसका मान इनपुट प्रारूप के लिए BFD नामों में से एक होना चाहिए। अगर वहाँ कोई नहीं है
पर्यावरण में "GNUTARGET", ld लक्ष्य के प्राकृतिक स्वरूप का उपयोग करता है। अगर "ग्नुटारगेट"
"डिफ़ॉल्ट" पर सेट है तो बीएफडी बाइनरी की जांच करके इनपुट प्रारूप की खोज करने का प्रयास करता है
इनपुट फ़ाइलें; यह विधि अक्सर सफल होती है, लेकिन संभावित अस्पष्टताएं हैं, क्योंकि वहां
यह सुनिश्चित करने का कोई तरीका नहीं है कि ऑब्जेक्ट-फ़ाइल स्वरूपों को निर्दिष्ट करने के लिए उपयोग की जाने वाली जादुई संख्या है
अनोखा। हालाँकि, प्रत्येक सिस्टम पर BFD के लिए कॉन्फ़िगरेशन प्रक्रिया को स्थान देता है
उस प्रणाली के लिए पारंपरिक प्रारूप पहले खोज-सूची में है, इसलिए अस्पष्टता का समाधान किया जाता है
अधिवेशन के पक्ष में।

यदि आप इसका उपयोग नहीं करते हैं तो "LDEMULATION" डिफ़ॉल्ट इम्यूलेशन निर्धारित करता है -m विकल्प।
अनुकरण लिंकर व्यवहार के विभिन्न पहलुओं को प्रभावित कर सकता है, विशेष रूप से डिफ़ॉल्ट लिंकर
स्क्रिप्ट आप उपलब्ध एमुलेशन को के साथ सूचीबद्ध कर सकते हैं --verbose or -V विकल्प। अगर
-m विकल्प का उपयोग नहीं किया जाता है, और "LDEMULATION" पर्यावरण चर परिभाषित नहीं है,
डिफ़ॉल्ट अनुकरण इस बात पर निर्भर करता है कि लिंकर को कैसे कॉन्फ़िगर किया गया था।

आम तौर पर, लिंकर प्रतीकों को हटाने के लिए डिफ़ॉल्ट होगा। हालांकि, यदि
"COLLECT_NO_DEMANGLE" वातावरण में सेट है, तो यह डिमैंगलिंग नहीं करने के लिए डिफ़ॉल्ट होगा
प्रतीक यह पर्यावरण चर "जीसीसी" लिंकर द्वारा समान रूप से उपयोग किया जाता है
आवरण कार्यक्रम। डिफ़ॉल्ट को ओवरराइड किया जा सकता है --demangle और --नो-डेमंगल
विकल्प.

onworks.net सेवाओं का उपयोग करके h8300-hms-ld ऑनलाइन का उपयोग करें


Ad


Ad