ഇതാണ് i686-linux-gnu-ld.bfd എന്ന കമാൻഡ്, ഉബുണ്ടു ഓൺലൈൻ, ഫെഡോറ ഓൺലൈൻ, വിൻഡോസ് ഓൺലൈൻ എമുലേറ്റർ അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാനാകും.
പട്ടിക:
NAME
ld - GNU ലിങ്കർ
സിനോപ്സിസ്
ld [ഓപ്ഷനുകൾ] objfile ...
വിവരണം
ld ഒബ്ജക്റ്റും ആർക്കൈവ് ഫയലുകളും സംയോജിപ്പിക്കുന്നു, അവയുടെ ഡാറ്റ മാറ്റിസ്ഥാപിക്കുന്നു
ചിഹ്ന റഫറൻസുകളെ ബന്ധിപ്പിക്കുന്നു. സാധാരണയായി കംപൈൽ ചെയ്യുന്നതിനുള്ള അവസാന ഘട്ടം a
പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കാനുള്ളതാണ് ld.
ld എന്നതിന്റെ സൂപ്പർസെറ്റിൽ എഴുതിയ ലിങ്കർ കമാൻഡ് ലാംഗ്വേജ് ഫയലുകൾ സ്വീകരിക്കുന്നു
AT&T-യുടെ ലിങ്ക് എഡിറ്റർ കമാൻഡ് ലാംഗ്വേജ് സിന്റാക്സ്, വ്യക്തമായതും നൽകാനും
ലിങ്കിംഗ് പ്രക്രിയയുടെ പൂർണ്ണ നിയന്ത്രണം.
ഈ മാൻ പേജ് കമാൻഡ് ഭാഷയെ വിവരിക്കുന്നില്ല; കാണുക ld എൻട്രി
കമാൻഡ് ഭാഷയെയും മറ്റ് വശങ്ങളെയും കുറിച്ചുള്ള പൂർണ്ണ വിവരങ്ങൾക്ക് "info" എന്നതിൽ
GNU ലിങ്കറിന്റെ.
ഈ പതിപ്പ് ld പ്രവർത്തിക്കാൻ പൊതു ഉദ്ദേശ്യ BFD ലൈബ്രറികൾ ഉപയോഗിക്കുന്നു
ഒബ്ജക്റ്റ് ഫയലുകൾ. ഇത് അനുവദിക്കുന്നു ld ഒബ്ജക്റ്റ് ഫയലുകൾ വായിക്കാനും സംയോജിപ്പിക്കാനും എഴുതാനും
വിവിധ ഫോർമാറ്റുകളിൽ---ഉദാഹരണത്തിന്, COFF അല്ലെങ്കിൽ "a.out". വ്യത്യസ്ത
ലഭ്യമായ ഏതെങ്കിലും തരത്തിലുള്ള ഒബ്ജക്റ്റ് നിർമ്മിക്കുന്നതിന് ഫോർമാറ്റുകൾ ഒരുമിച്ച് ലിങ്ക് ചെയ്തേക്കാം
ഫയൽ.
അതിന്റെ ഫ്ലെക്സിബിലിറ്റി മാറ്റിനിർത്തിയാൽ, ഗ്നു ലിങ്കർ മറ്റുള്ളവയേക്കാൾ സഹായകരമാണ്
ഡയഗ്നോസ്റ്റിക് വിവരങ്ങൾ നൽകുന്നതിൽ ലിങ്കർമാർ. പല ലിങ്കറുകളും ഉപേക്ഷിക്കുന്നു
ഒരു പിശക് നേരിടുമ്പോൾ ഉടനടി നടപ്പിലാക്കൽ; സാധ്യമാകുമ്പോഴെല്ലാം, ld
നിർവ്വഹിക്കുന്നത് തുടരുന്നു, മറ്റ് പിശകുകൾ തിരിച്ചറിയാൻ നിങ്ങളെ അനുവദിക്കുന്നു (അല്ലെങ്കിൽ ചിലതിൽ
കേസുകൾ, പിശക് ഉണ്ടായിരുന്നിട്ടും ഒരു ഔട്ട്പുട്ട് ഫയൽ ലഭിക്കുന്നതിന്).
GNU ലിങ്കർ ld വിശാലമായ സാഹചര്യങ്ങൾ ഉൾക്കൊള്ളാൻ ഉദ്ദേശിച്ചുള്ളതാണ്, കൂടാതെ
മറ്റ് ലിങ്കറുകളുമായി കഴിയുന്നത്ര പൊരുത്തപ്പെടുത്തുക. ഫലമായി, നിങ്ങൾക്ക് ഉണ്ട്
അതിന്റെ സ്വഭാവം നിയന്ത്രിക്കാൻ നിരവധി തിരഞ്ഞെടുപ്പുകൾ.
ഓപ്ഷനുകൾ
ലിങ്കർ നിരവധി കമാൻഡ്-ലൈൻ ഓപ്ഷനുകളെ പിന്തുണയ്ക്കുന്നു, എന്നാൽ യഥാർത്ഥത്തിൽ
അവയിൽ ചിലത് ഏതെങ്കിലും പ്രത്യേക സന്ദർഭത്തിൽ പ്രയോഗിക്കുക. ഉദാഹരണത്തിന്,
ഒരു പതിവ് ഉപയോഗം ld a-യിൽ സ്റ്റാൻഡേർഡ് Unix ഒബ്ജക്റ്റ് ഫയലുകൾ ലിങ്ക് ചെയ്യുക എന്നതാണ്
സ്റ്റാൻഡേർഡ്, പിന്തുണയ്ക്കുന്ന Unix സിസ്റ്റം. അത്തരമൊരു സിസ്റ്റത്തിൽ, ഒരു ഫയൽ ലിങ്ക് ചെയ്യാൻ
"hello.o":
ld -o /lib/crt0.o hello.o -lc
ഇത് പറയുന്നു ld എന്ന ഒരു ഫയൽ ഹാജരാക്കാൻ ഔട്ട്പുട്ട് ലിങ്കിംഗിന്റെ ഫലമായി
"hello.o" ഉള്ള "/lib/crt0.o" ഫയലും "libc.a" എന്ന ലൈബ്രറിയും
സാധാരണ തിരയൽ ഡയറക്ടറികളിൽ നിന്ന് വരും. (ഇതിന്റെ ചർച്ച കാണുക
The -l താഴെയുള്ള ഓപ്ഷൻ.)
ചില കമാൻഡ്-ലൈൻ ഓപ്ഷനുകൾ ld ഏത് ഘട്ടത്തിലും വ്യക്തമാക്കിയേക്കാം
കമാൻഡ് ലൈൻ. എന്നിരുന്നാലും, ഫയലുകളെ പരാമർശിക്കുന്ന ഓപ്ഷനുകൾ -l or
-T, ഓപ്ഷൻ ദൃശ്യമാകുന്ന പോയിന്റിൽ ഫയൽ വായിക്കാൻ ഇടയാക്കുക
കമാൻഡ് ലൈനിൽ, ഒബ്ജക്റ്റ് ഫയലുകളുമായും മറ്റ് ഫയലുകളുമായും ബന്ധപ്പെട്ടിരിക്കുന്നു
ഓപ്ഷനുകൾ. മറ്റൊരു ആർഗ്യുമെന്റ് ഉപയോഗിച്ച് ഫയൽ ഇതര ഓപ്ഷനുകൾ ആവർത്തിക്കുന്നത് ചെയ്യും
ഒന്നുകിൽ കൂടുതൽ ഫലമുണ്ടാകില്ല, അല്ലെങ്കിൽ മുമ്പത്തെ സംഭവങ്ങൾ അസാധുവാക്കുക (അത്
ആ ഓപ്ഷന്റെ കമാൻഡ് ലൈനിൽ ഇടതുവശത്തേക്ക്. ഓപ്ഷനുകൾ ഏത്
എന്നതിൽ സൂചിപ്പിച്ചിരിക്കുന്ന ഒന്നിലധികം തവണ അർത്ഥപൂർവ്വം വ്യക്തമാക്കിയേക്കാം
ചുവടെയുള്ള വിവരണങ്ങൾ.
നോൺ-ഓപ്ഷൻ ആർഗ്യുമെന്റുകൾ ഒബ്ജക്റ്റ് ഫയലുകളോ ആർക്കൈവുകളോ ആണ്
ഒരുമിച്ച് ബന്ധിപ്പിച്ചിരിക്കുന്നു. അവ പിന്തുടരുകയോ മുൻകൈ എടുക്കുകയോ കൂട്ടിക്കലർത്തുകയോ ചെയ്യാം
കമാൻഡ്-ലൈൻ ഓപ്ഷനുകൾ, ഒരു ഒബ്ജക്റ്റ് ഫയൽ ആർഗ്യുമെന്റ് ആയിരിക്കണമെന്നില്ല
ഒരു ഓപ്ഷനും അതിന്റെ ആർഗ്യുമെന്റിനുമിടയിൽ സ്ഥാപിച്ചിരിക്കുന്നു.
സാധാരണയായി ലിങ്കർ ഒരു ഒബ്ജക്റ്റ് ഫയലെങ്കിലും ഉപയോഗിച്ചാണ് വിളിക്കുന്നത്, പക്ഷേ നിങ്ങൾ
ഉപയോഗിച്ച് ബൈനറി ഇൻപുട്ട് ഫയലുകളുടെ മറ്റ് രൂപങ്ങൾ വ്യക്തമാക്കാൻ കഴിയും -l, -Rഎന്നാൽ
സ്ക്രിപ്റ്റ് കമാൻഡ് ഭാഷ. എങ്കിൽ ഇല്ല ബൈനറി ഇൻപുട്ട് ഫയലുകൾ എല്ലാം
വ്യക്തമാക്കിയിരിക്കുന്നു, ലിങ്കർ ഒരു ഔട്ട്പുട്ടും ഉൽപ്പാദിപ്പിക്കുന്നില്ല, കൂടാതെ ഇത് നൽകുന്നു
സന്ദേശം ഇല്ല ഇൻപുട്ട് ഫയലുകൾ.
ലിങ്കർക്ക് ഒരു ഒബ്ജക്റ്റ് ഫയലിന്റെ ഫോർമാറ്റ് തിരിച്ചറിയാൻ കഴിയുന്നില്ലെങ്കിൽ, അത് തിരിച്ചറിയും
അതൊരു ലിങ്കർ സ്ക്രിപ്റ്റ് ആണെന്ന് കരുതുക. ഈ രീതിയിൽ വ്യക്തമാക്കിയ ഒരു സ്ക്രിപ്റ്റ്
ലിങ്കിനായി ഉപയോഗിക്കുന്ന പ്രധാന ലിങ്കർ സ്ക്രിപ്റ്റ് വർദ്ധിപ്പിക്കുന്നു (ഒന്നുകിൽ സ്ഥിരസ്ഥിതി
ലിങ്കർ സ്ക്രിപ്റ്റ് അല്ലെങ്കിൽ ഉപയോഗിച്ചുകൊണ്ട് വ്യക്തമാക്കിയ ഒന്ന് -T). ഈ സവിശേഷത അനുവദിക്കുന്നു
ഒരു ഒബ്ജക്റ്റ് അല്ലെങ്കിൽ ഒരു ഫയലിന് നേരെ ലിങ്ക് ചെയ്യാനുള്ള ലിങ്കർ
ആർക്കൈവ്, എന്നാൽ യഥാർത്ഥത്തിൽ ചില ചിഹ്ന മൂല്യങ്ങൾ അല്ലെങ്കിൽ ഉപയോഗങ്ങൾ നിർവചിക്കുന്നു
മറ്റ് ഒബ്ജക്റ്റുകൾ ലോഡുചെയ്യാൻ "INPUT" അല്ലെങ്കിൽ "GROUP". ഇതിൽ ഒരു സ്ക്രിപ്റ്റ് വ്യക്തമാക്കുന്നു
അധിക കമാൻഡുകൾ ഉപയോഗിച്ച് പ്രധാന ലിങ്കർ സ്ക്രിപ്റ്റ് വർദ്ധിപ്പിക്കുന്നു
പ്രധാന സ്ക്രിപ്റ്റിന് ശേഷം സ്ഥാപിച്ചു; ഉപയോഗിക്കുക -T ഡിഫോൾട്ട് മാറ്റിസ്ഥാപിക്കാനുള്ള ഓപ്ഷൻ
ലിങ്കർ സ്ക്രിപ്റ്റ് പൂർണ്ണമായും, എന്നാൽ "INSERT" കമാൻഡിന്റെ പ്രഭാവം ശ്രദ്ധിക്കുക.
പേരുകൾ ഒറ്റ അക്ഷരമായ ഓപ്ഷനുകൾക്ക്, ഓപ്ഷൻ ആർഗ്യുമെന്റുകൾ നിർബന്ധമാണ്
ഒന്നുകിൽ വൈറ്റ്സ്പെയ്സിൽ ഇടപെടാതെ ഓപ്ഷൻ അക്ഷരം പിന്തുടരുക, അല്ലെങ്കിൽ ആകുക
എന്ന ഓപ്ഷന് തൊട്ടുപിന്നാലെ പ്രത്യേക ആർഗ്യുമെന്റുകളായി നൽകിയിരിക്കുന്നു
അവരെ ആവശ്യപ്പെടുന്നു.
ഒന്നോ രണ്ടോ ഡാഷുകൾ, ഒന്നിലധികം അക്ഷരങ്ങൾ ഉള്ള ഓപ്ഷനുകൾക്ക്
ഓപ്ഷൻ പേരിന് മുമ്പായി നൽകാം; ഉദാഹരണത്തിന്, -ട്രേസ്-ചിഹ്നം ഒപ്പം
--ട്രേസ്-ചിഹ്നം തുല്യമാണ്. ശ്രദ്ധിക്കുക --- ഇതിന് ഒരു അപവാദമുണ്ട്
ഭരണം. 'o' എന്ന ചെറിയ അക്ഷരത്തിൽ ആരംഭിക്കുന്ന ഒന്നിലധികം അക്ഷര ഓപ്ഷനുകൾ
രണ്ട് ഡാഷുകൾ മാത്രം മുന്നിൽ. എന്ന ആശയക്കുഴപ്പം കുറയ്ക്കാനാണിത്
-o ഓപ്ഷൻ. അതിനാൽ ഉദാഹരണത്തിന് - ഒമാജിക് ഔട്ട്പുട്ട് ഫയലിന്റെ പേര് സജ്ജമാക്കുന്നു ജാലവിദ്യ
അതേസമയം --ഓമാജിക് ഔട്ട്പുട്ടിൽ NMAGIC ഫ്ലാഗ് സജ്ജമാക്കുന്നു.
ഒന്നിലധികം അക്ഷര ഓപ്ഷനുകളിലേക്കുള്ള ആർഗ്യുമെന്റുകൾ ഒന്നുകിൽ നിന്ന് വേർതിരിക്കേണ്ടതാണ്
ഓപ്ഷൻ നാമം തുല്യ ചിഹ്നത്താൽ, അല്ലെങ്കിൽ പ്രത്യേക ആർഗ്യുമെന്റുകളായി നൽകണം
അവ ആവശ്യമുള്ള ഓപ്ഷൻ ഉടൻ പിന്തുടരുന്നു. ഉദാഹരണത്തിന്,
--ട്രേസ്-ചിഹ്നം ഫൂ ഒപ്പം --trace-symbol=foo തുല്യമാണ്. അതുല്യമായ
ഒന്നിലധികം അക്ഷര ഓപ്ഷനുകളുടെ പേരുകളുടെ ചുരുക്കെഴുത്തുകൾ സ്വീകരിക്കുന്നു.
ശ്രദ്ധിക്കുക --- ഒരു കംപൈലർ ഡ്രൈവർ വഴി പരോക്ഷമായി ലിങ്കർ അഭ്യർത്ഥിക്കുകയാണെങ്കിൽ
(ഉദാ ജിസി) തുടർന്ന് എല്ലാ ലിങ്കർ കമാൻഡ് ലൈൻ ഓപ്ഷനുകളും പ്രിഫിക്സ് ചെയ്യണം
by -Wl, (അല്ലെങ്കിൽ പ്രത്യേക കംപൈലർ ഡ്രൈവറിന് അനുയോജ്യമായത്)
ഇതുപോലെ:
gcc -Wl,--start-group foo.o bar.o -Wl,--end-group
ഇത് പ്രധാനമാണ്, അല്ലാത്തപക്ഷം കമ്പൈലർ ഡ്രൈവർ പ്രോഗ്രാം ചെയ്യാം
ലിങ്കർ ഓപ്ഷനുകൾ നിശബ്ദമായി ഉപേക്ഷിക്കുക, അതിന്റെ ഫലമായി ഒരു മോശം ലിങ്ക്. ആശയക്കുഴപ്പം
മൂല്യങ്ങൾ ആവശ്യമുള്ള ഓപ്ഷനുകൾ എ വഴി കടന്നുപോകുമ്പോഴും ഉണ്ടാകാം
ഡ്രൈവർ, ഓപ്ഷനും ആർഗ്യുമെന്റും തമ്മിലുള്ള സ്പെയ്സിന്റെ ഉപയോഗം ഒരു ആയി പ്രവർത്തിക്കുന്നു
സെപ്പറേറ്റർ, കൂടാതെ ഡ്രൈവർ ലിങ്കറിലേക്ക് ഓപ്ഷൻ മാത്രം കൈമാറാൻ ഇടയാക്കുന്നു
കംപൈലറിലേക്കുള്ള വാദവും. ഈ സാഹചര്യത്തിൽ, ഇത് ഉപയോഗിക്കുന്നത് ഏറ്റവും ലളിതമാണ്
സിംഗിൾ, മൾട്ടിപ്പിൾ-അക്ഷര ഓപ്ഷനുകളുടെ ജോയിൻ ചെയ്ത ഫോമുകൾ, ഇനിപ്പറയുന്നവ:
gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map
അംഗീകരിച്ചിട്ടുള്ള ജനറിക് കമാൻഡ് ലൈൻ സ്വിച്ചുകളുടെ ഒരു പട്ടിക ഇതാ
GNU ലിങ്കർ:
@ഫയല്
കമാൻഡ്-ലൈൻ ഓപ്ഷനുകൾ വായിക്കുക ഫയല്. വായിച്ച ഓപ്ഷനുകൾ ചേർത്തു
യഥാർത്ഥ @ എന്നതിന് പകരംഫയല് ഓപ്ഷൻ. എങ്കിൽ ഫയല് നിലവിലില്ല, അല്ലെങ്കിൽ
വായിക്കാൻ കഴിയില്ല, തുടർന്ന് ഓപ്ഷൻ അക്ഷരാർത്ഥത്തിൽ പരിഗണിക്കും, അല്ല
നീക്കംചെയ്തു.
ഓപ്ഷനുകൾ ഫയല് വൈറ്റ്സ്പെയ്സ് കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു. ഒരു വെള്ളയിടം
മുഴുവൻ ചുറ്റുമായി ഒരു ഓപ്ഷനിൽ പ്രതീകം ഉൾപ്പെടുത്താം
ഒറ്റ അല്ലെങ്കിൽ ഇരട്ട ഉദ്ധരണികളിൽ ഓപ്ഷൻ. ഏത് കഥാപാത്രവും (ഉൾപ്പെടെ
ഒരു ബാക്ക്സ്ലാഷ്) പ്രതീകം പ്രിഫിക്സ് ചെയ്ത് ഉൾപ്പെടുത്താം
ഒരു ബാക്ക്സ്ലാഷ് ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ദി ഫയല് അതിൽ തന്നെ അധികമായി അടങ്ങിയിരിക്കാം
@ഫയല് ഓപ്ഷനുകൾ; അത്തരം ഓപ്ഷനുകൾ ആവർത്തിച്ച് പ്രോസസ്സ് ചെയ്യും.
-a കീവേഡ്
HP/UX അനുയോജ്യതയ്ക്കായി ഈ ഓപ്ഷൻ പിന്തുണയ്ക്കുന്നു. ദി കീവേഡ്
വാദം സ്ട്രിംഗുകളിൽ ഒന്നായിരിക്കണം ആർക്കൈവ്, പങ്കിട്ടു, അഥവാ സ്ഥിരസ്ഥിതി.
- ആർക്കൈവ് പ്രവർത്തനപരമായി തുല്യമാണ് - ബിസ്റ്റാറ്റിക്, മറ്റ് രണ്ട്
കീവേഡുകൾ പ്രവർത്തനപരമായി തുല്യമാണ് -Bdynamic. ഈ ഓപ്ഷൻ ചെയ്യാം
എത്ര തവണ വേണമെങ്കിലും ഉപയോഗിക്കാം.
--ഓഡിറ്റ് ഓഡിറ്റ്ലിബ്
ചേർക്കുന്നു ഓഡിറ്റ്ലിബ് ഡൈനാമിക് വിഭാഗത്തിന്റെ "DT_AUDIT" എൻട്രിയിലേക്ക്.
ഓഡിറ്റ്ലിബ് അസ്തിത്വത്തിനായി പരിശോധിച്ചിട്ടില്ല, അല്ലെങ്കിൽ അത് ഉപയോഗിക്കില്ല
DT_SONAME ലൈബ്രറിയിൽ വ്യക്തമാക്കിയിട്ടുണ്ട്. ഒന്നിലധികം തവണ വ്യക്തമാക്കിയാൽ
"DT_AUDIT" എന്നതിൽ കോളൺ വേർതിരിക്കപ്പെട്ട ഓഡിറ്റ് ഇന്റർഫേസുകളുടെ ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കും
ഉപയോഗിക്കാൻ. ലിങ്കർ ഓഡിറ്റ് എൻട്രി ഉള്ള ഒരു ഒബ്ജക്റ്റ് കണ്ടെത്തുകയാണെങ്കിൽ
പങ്കിട്ട ലൈബ്രറികൾക്കായി തിരയുമ്പോൾ, അത് അനുബന്ധമായി ചേർക്കും
ഔട്ട്പുട്ട് ഫയലിൽ "DT_DEPAUDIT" എൻട്രി. ഈ ഓപ്ഷൻ മാത്രമാണ്
rtld-ഓഡിറ്റ് ഇന്റർഫേസിനെ പിന്തുണയ്ക്കുന്ന ELF പ്ലാറ്റ്ഫോമുകളിൽ അർത്ഥവത്തായതാണ്.
-A വാസ്തുവിദ്യ
--വാസ്തുവിദ്യ=വാസ്തുവിദ്യ
നിലവിലെ റിലീസിൽ ld, ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്
ഇന്റൽ 960 ഫാമിലി ഓഫ് ആർക്കിടെക്ചർ. അതിൽ ld കോൺഫിഗറേഷൻ, ദി
വാസ്തുവിദ്യ ആർഗ്യുമെന്റ് പ്രത്യേക വാസ്തുവിദ്യയെ തിരിച്ചറിയുന്നു
960 കുടുംബം, ചില സുരക്ഷാ സംവിധാനങ്ങൾ പ്രാപ്തമാക്കുകയും ആർക്കൈവ് പരിഷ്കരിക്കുകയും ചെയ്യുന്നു-
ലൈബ്രറി തിരയൽ പാത.
യുടെ ഭാവി റിലീസുകൾ ld മറ്റുള്ളവർക്ക് സമാനമായ പ്രവർത്തനത്തെ പിന്തുണച്ചേക്കാം
വാസ്തുവിദ്യാ കുടുംബങ്ങൾ.
-b ഇൻപുട്ട് ഫോർമാറ്റ്
--ഫോർമാറ്റ്=ഇൻപുട്ട് ഫോർമാറ്റ്
ld ഒന്നിലധികം തരം ഒബ്ജക്റ്റ് ഫയലുകളെ പിന്തുണയ്ക്കാൻ കോൺഫിഗർ ചെയ്തേക്കാം.
നിങ്ങളുടെ എങ്കിൽ ld ഈ രീതിയിൽ ക്രമീകരിച്ചിരിക്കുന്നു, നിങ്ങൾക്ക് ഉപയോഗിക്കാം -b ഓപ്ഷൻ
ഇത് പിന്തുടരുന്ന ഇൻപുട്ട് ഒബ്ജക്റ്റ് ഫയലുകൾക്കുള്ള ബൈനറി ഫോർമാറ്റ് വ്യക്തമാക്കുക
കമാൻഡ് ലൈനിലെ ഓപ്ഷൻ. എപ്പോൾ പോലും ld പിന്തുണയ്ക്കുന്നതിനായി ക്രമീകരിച്ചിരിക്കുന്നു
ഇതര ഒബ്ജക്റ്റ് ഫോർമാറ്റുകൾ, നിങ്ങൾ സാധാരണയായി ഇത് വ്യക്തമാക്കേണ്ടതില്ല,
as ld ഒരു ഡിഫോൾട്ട് ഇൻപുട്ട് ഫോർമാറ്റായി പ്രതീക്ഷിക്കുന്നതിനായി കോൺഫിഗർ ചെയ്യണം
ഓരോ മെഷീനിലും ഏറ്റവും സാധാരണമായ ഫോർമാറ്റ്. ഇൻപുട്ട് ഫോർമാറ്റ് ഒരു ടെക്സ്റ്റ് സ്ട്രിംഗ് ആണ്,
BFD ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്ന ഒരു പ്രത്യേക ഫോർമാറ്റിന്റെ പേര്.
(ലഭ്യമായ ബൈനറി ഫോർമാറ്റുകൾ നിങ്ങൾക്ക് ലിസ്റ്റ് ചെയ്യാം objdump -i.)
ഒരു ഫയലുമായി നിങ്ങൾ ഫയലുകൾ ലിങ്ക് ചെയ്യുകയാണെങ്കിൽ ഈ ഓപ്ഷൻ ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം
അസാധാരണമായ ബൈനറി ഫോർമാറ്റ്. നിങ്ങൾക്ക് ഉപയോഗിക്കാനും കഴിയും -b ഫോർമാറ്റുകൾ മാറാൻ
വ്യക്തമായി (വ്യത്യസ്ത ഫോർമാറ്റുകളുടെ ഒബ്ജക്റ്റ് ഫയലുകൾ ലിങ്കുചെയ്യുമ്പോൾ), വഴി
ഉൾപ്പെടെ -b ഇൻപുട്ട് ഫോർമാറ്റ് ഒബ്ജക്റ്റ് ഫയലുകളുടെ ഓരോ ഗ്രൂപ്പിനും മുമ്പായി a
പ്രത്യേക ഫോർമാറ്റ്.
എൻവയോൺമെന്റ് വേരിയബിളിൽ നിന്നാണ് ഡിഫോൾട്ട് ഫോർമാറ്റ് എടുത്തിരിക്കുന്നത്
"GNUTARGET".
നിങ്ങൾക്ക് ഒരു സ്ക്രിപ്റ്റിൽ നിന്ന് ഇൻപുട്ട് ഫോർമാറ്റ് നിർവചിക്കാവുന്നതാണ്
"TARGET" കമാൻഡ്;
-c എംആർഐ-കമാൻഡ്ഫയൽ
--mri-script=എംആർഐ-കമാൻഡ്ഫയൽ
എംആർഐ നിർമ്മിക്കുന്ന ലിങ്കറുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി, ld സ്ക്രിപ്റ്റ് സ്വീകരിക്കുന്നു
ഇതര, നിയന്ത്രിത കമാൻഡ് ഭാഷയിൽ എഴുതിയ ഫയലുകൾ,
GNU ld-ന്റെ MRI അനുയോജ്യമായ സ്ക്രിപ്റ്റ് ഫയലുകൾ വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നു
പ്രമാണീകരണം. ഓപ്ഷൻ ഉപയോഗിച്ച് MRI സ്ക്രിപ്റ്റ് ഫയലുകൾ അവതരിപ്പിക്കുക -c; ഉപയോഗിക്കുക
The -T പൊതു ആവശ്യത്തിൽ എഴുതിയ ലിങ്കർ സ്ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാനുള്ള ഓപ്ഷൻ
ld സ്ക്രിപ്റ്റിംഗ് ഭാഷ. എങ്കിൽ MRI-cmdfile നിലവിലില്ല, ld തിരയുന്നു
ഏതെങ്കിലും നിർദ്ദേശിച്ചിട്ടുള്ള ഡയറക്ടറികളിൽ അത് -L ഓപ്ഷനുകൾ.
-d
-ഡിസി
-dp ഈ മൂന്ന് ഓപ്ഷനുകളും തുല്യമാണ്; ഒന്നിലധികം ഫോമുകൾ പിന്തുണയ്ക്കുന്നു
മറ്റ് ലിങ്കറുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി. അവർ പൊതുവായതിന് ഇടം നൽകുന്നു
മാറ്റിസ്ഥാപിക്കാവുന്ന ഒരു ഔട്ട്പുട്ട് ഫയൽ വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിലും ചിഹ്നങ്ങൾ (കൂടാതെ -r).
"FORCE_COMMON_ALLOCATION" എന്ന സ്ക്രിപ്റ്റ് കമാൻഡിന് സമാനമായ ഫലമുണ്ട്.
--ഡെപ്പോഡിറ്റ് ഓഡിറ്റ്ലിബ്
-P ഓഡിറ്റ്ലിബ്
ചേർക്കുന്നു ഓഡിറ്റ്ലിബ് ഡൈനാമിക് വിഭാഗത്തിന്റെ "DT_DEPAUDIT" എൻട്രിയിലേക്ക്.
ഓഡിറ്റ്ലിബ് അസ്തിത്വത്തിനായി പരിശോധിച്ചിട്ടില്ല, അല്ലെങ്കിൽ അത് ഉപയോഗിക്കില്ല
DT_SONAME ലൈബ്രറിയിൽ വ്യക്തമാക്കിയിട്ടുണ്ട്. ഒന്നിലധികം തവണ വ്യക്തമാക്കിയാൽ
"DT_DEPAUDIT" എന്നതിൽ കോളൺ വേർതിരിക്കപ്പെട്ട ഓഡിറ്റിന്റെ ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കും
ഉപയോഗിക്കാനുള്ള ഇന്റർഫേസുകൾ. ഈ ഓപ്ഷൻ ELF പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ അർത്ഥമുള്ളൂ
rtld-ഓഡിറ്റ് ഇന്റർഫേസിനെ പിന്തുണയ്ക്കുന്നു. -P ഓപ്ഷൻ നൽകിയിരിക്കുന്നു
സോളാരിസ് അനുയോജ്യത.
-e എൻട്രി
--പ്രവേശനം=എൻട്രി
ഉപയോഗം എൻട്രി നിങ്ങളുടെ എക്സിക്യൂഷൻ ആരംഭിക്കുന്നതിനുള്ള വ്യക്തമായ ചിഹ്നമായി
ഡിഫോൾട്ട് എൻട്രി പോയിന്റിന് പകരം പ്രോഗ്രാം. ഇല്ലെങ്കിൽ
എന്ന ചിഹ്നം എൻട്രി, ലിങ്കർ പാഴ്സ് ചെയ്യാൻ ശ്രമിക്കും എൻട്രി ഒരു സംഖ്യയായി,
എൻട്രി വിലാസമായി അത് ഉപയോഗിക്കുക (നമ്പർ വ്യാഖ്യാനിക്കപ്പെടും
അടിസ്ഥാനം 10 ൽ; നിങ്ങൾക്ക് ഒരു ലീഡിംഗ് ഉപയോഗിക്കാം 0x അടിസ്ഥാനം 16, അല്ലെങ്കിൽ ഒരു ലീഡിംഗ് 0
അടിസ്ഥാനം 8).
--ഒഴിവാക്കുക-ലിബ്സ് ലിബ്,ലിബ്...
ചിഹ്നങ്ങൾ പാടില്ലാത്ത ആർക്കൈവ് ലൈബ്രറികളുടെ ഒരു ലിസ്റ്റ് വ്യക്തമാക്കുന്നു
സ്വയമേവ കയറ്റുമതി ചെയ്യപ്പെടും. ലൈബ്രറിയുടെ പേരുകൾ ഇപ്രകാരം വേർതിരിക്കാം
കോമകൾ അല്ലെങ്കിൽ കോളണുകൾ. "--exclude-libs ALL" എന്ന് വ്യക്തമാക്കുന്നത് ചിഹ്നങ്ങളെ ഒഴിവാക്കുന്നു
ഓട്ടോമാറ്റിക് എക്സ്പോർട്ടിൽ നിന്നുള്ള എല്ലാ ആർക്കൈവ് ലൈബ്രറികളിലും. ഈ ഓപ്ഷൻ ആണ്
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് മാത്രമേ ലഭ്യമാകൂ
ELF ടാർഗെറ്റുചെയ്ത പോർട്ടുകൾ. i386 PE-യ്ക്ക്, a-യിൽ വ്യക്തമായി ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന ചിഹ്നങ്ങൾ
ഈ ഓപ്ഷൻ പരിഗണിക്കാതെ തന്നെ .def ഫയൽ ഇപ്പോഴും കയറ്റുമതി ചെയ്യുന്നു. ELF-ന്
ടാർഗെറ്റുചെയ്ത പോർട്ടുകൾ, ഈ ഓപ്ഷൻ ബാധിക്കുന്ന ചിഹ്നങ്ങളെ ഇതായി കണക്കാക്കും
മറച്ചിരിക്കുന്നു.
--ഒഴിവാക്കുക-മൊഡ്യൂളുകൾ-ഇംപ്ലിബ് മൊഡ്യൂൾ,മൊഡ്യൂൾ...
ഒബ്ജക്റ്റ് ഫയലുകളുടെയോ ആർക്കൈവ് അംഗങ്ങളുടെയോ ഒരു ലിസ്റ്റ് വ്യക്തമാക്കുന്നു, അതിൽ നിന്ന്
ചിഹ്നങ്ങൾ സ്വയമേവ കയറ്റുമതി ചെയ്യാൻ പാടില്ല, എന്നാൽ ഏതാണ്
ഈ സമയത്ത് ജനറേറ്റ് ചെയ്യുന്ന ഇറക്കുമതി ലൈബ്രറിയിലേക്ക് മൊത്തക്കച്ചവടമായി പകർത്തി
ലിങ്ക്. മൊഡ്യൂളിന്റെ പേരുകൾ കോമകളോ കോളണുകളോ ഉപയോഗിച്ച് വേർതിരിച്ചിരിക്കാം, കൂടാതെ
ഉപയോഗിക്കുന്ന ഫയൽനാമങ്ങളുമായി കൃത്യമായി പൊരുത്തപ്പെടണം ld ഫയലുകൾ തുറക്കാൻ; വേണ്ടി
ആർക്കൈവ് അംഗങ്ങൾ, ഇത് അംഗത്തിന്റെ പേര് മാത്രമാണ്, എന്നാൽ ഒബ്ജക്റ്റിന്
ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന ഫയലുകൾ ഏത് പാത്തും ഉൾപ്പെടുത്തുകയും കൃത്യമായി പൊരുത്തപ്പെടുത്തുകയും വേണം
ലിങ്കറിന്റെ കമാൻഡ് ലൈനിൽ ഇൻപുട്ട് ഫയൽ വ്യക്തമാക്കാൻ ഉപയോഗിക്കുന്നു. ഈ
i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് മാത്രമേ ഓപ്ഷൻ ലഭ്യമാകൂ
ലിങ്കർ. ഒരു .def ഫയലിൽ വ്യക്തമായി ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന ചിഹ്നങ്ങൾ ഇപ്പോഴും ഉണ്ട്
ഈ ഓപ്ഷൻ പരിഗണിക്കാതെ തന്നെ കയറ്റുമതി ചെയ്തു.
-E
--കയറ്റുമതി-ഡൈനാമിക്
--നോ-കയറ്റുമതി-ഡൈനാമിക്
ചലനാത്മകമായി ലിങ്ക് ചെയ്ത എക്സിക്യൂട്ടബിൾ സൃഷ്ടിക്കുമ്പോൾ, -E ഓപ്ഷൻ
അഥവാ --കയറ്റുമതി-ഡൈനാമിക് ഓപ്ഷൻ ലിങ്കർ എല്ലാ ചിഹ്നങ്ങളും ചേർക്കുന്നതിന് കാരണമാകുന്നു
ചലനാത്മക ചിഹ്ന പട്ടികയിലേക്ക്. ഡൈനാമിക് ചിഹ്ന പട്ടിക സെറ്റാണ്
പ്രവർത്തനസമയത്ത് ചലനാത്മക വസ്തുക്കളിൽ നിന്ന് ദൃശ്യമാകുന്ന ചിഹ്നങ്ങളുടെ.
നിങ്ങൾ ഈ ഓപ്ഷനുകളൊന്നും ഉപയോഗിക്കുന്നില്ലെങ്കിൽ (അല്ലെങ്കിൽ ഉപയോഗിക്കുക
--നോ-കയറ്റുമതി-ഡൈനാമിക് ഡിഫോൾട്ട് സ്വഭാവം പുനഃസ്ഥാപിക്കാനുള്ള ഓപ്ഷൻ), the
ഡൈനാമിക് ചിഹ്ന പട്ടികയിൽ സാധാരണയായി ആ ചിഹ്നങ്ങൾ മാത്രമേ ഉണ്ടാകൂ
ലിങ്കിൽ പരാമർശിച്ചിരിക്കുന്ന ചില ചലനാത്മക ഒബ്ജക്റ്റുകൾ പരാമർശിക്കുന്നു.
റഫർ ചെയ്യേണ്ട ഒരു ഡൈനാമിക് ഒബ്ജക്റ്റ് ലോഡ് ചെയ്യാൻ നിങ്ങൾ "dlopen" ഉപയോഗിക്കുകയാണെങ്കിൽ
മറ്റു ചിലതിനുപകരം, പ്രോഗ്രാം നിർവചിച്ചിരിക്കുന്ന ചിഹ്നങ്ങളിലേക്ക് മടങ്ങുക
ഡൈനാമിക് ഒബ്ജക്റ്റ്, എപ്പോൾ നിങ്ങൾ ഈ ഓപ്ഷൻ ഉപയോഗിക്കേണ്ടി വരും
പ്രോഗ്രാം തന്നെ ലിങ്ക് ചെയ്യുന്നു.
ചിഹ്നങ്ങൾ എന്തായിരിക്കണമെന്ന് നിയന്ത്രിക്കാൻ നിങ്ങൾക്ക് ഡൈനാമിക് ലിസ്റ്റും ഉപയോഗിക്കാം
ഔട്ട്പുട്ട് ഫോർമാറ്റ് പിന്തുണയ്ക്കുന്നുണ്ടെങ്കിൽ ഡൈനാമിക് ചിഹ്ന പട്ടികയിലേക്ക് ചേർത്തു.
എന്നതിന്റെ വിവരണം കാണുക --ഡൈനാമിക്-ലിസ്റ്റ്.
ഈ ഓപ്ഷൻ ELF ടാർഗെറ്റുചെയ്ത പോർട്ടുകൾക്ക് മാത്രമാണെന്ന കാര്യം ശ്രദ്ധിക്കുക. പി.ഇ
ഒരു DLL-ൽ നിന്ന് എല്ലാ ചിഹ്നങ്ങളും കയറ്റുമതി ചെയ്യുന്നതിന് സമാനമായ ഒരു ഫംഗ്ഷനെ ടാർഗെറ്റുകൾ പിന്തുണയ്ക്കുന്നു
അല്ലെങ്കിൽ EXE; എന്നതിന്റെ വിവരണം കാണുക --എക്സ്പോർട്ട്-എല്ലാ-ചിഹ്നങ്ങളും താഴെ.
-ഇ.ബി ബിഗ്-എൻഡിയൻ ഒബ്ജക്റ്റുകൾ ലിങ്ക് ചെയ്യുക. ഇത് ഡിഫോൾട്ട് ഔട്ട്പുട്ട് ഫോർമാറ്റിനെ ബാധിക്കുന്നു.
-ഇഎൽ ലിറ്റിൽ-എൻഡിയൻ ഒബ്ജക്റ്റുകൾ ലിങ്ക് ചെയ്യുക. ഇത് ഡിഫോൾട്ട് ഔട്ട്പുട്ടിനെ ബാധിക്കുന്നു
ഫോർമാറ്റ്.
-f പേര്
--auxiliary=പേര്
ഒരു ELF പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ, ആന്തരിക DT_AUXILIARY സജ്ജമാക്കുക
നിർദ്ദിഷ്ട പേരിലേക്ക് ഫീൽഡ്. ഇത് ഡൈനാമിക് ലിങ്കറോട് അത് പറയുന്നു
പങ്കിട്ട വസ്തുവിന്റെ ചിഹ്ന പട്ടിക ഒരു ആയി ഉപയോഗിക്കണം
പങ്കിട്ട വസ്തുവിന്റെ ചിഹ്ന പട്ടികയിൽ സഹായ ഫിൽട്ടർ പേര്.
നിങ്ങൾ പിന്നീട് ഈ ഫിൽട്ടർ ഒബ്ജക്റ്റിനെതിരെ ഒരു പ്രോഗ്രാം ലിങ്ക് ചെയ്താൽ, എപ്പോൾ
നിങ്ങൾ പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുക, ഡൈനാമിക് ലിങ്കർ DT_AUXILIARY കാണും
വയൽ. ഡൈനാമിക് ലിങ്കർ ഫിൽട്ടറിൽ നിന്ന് ഏതെങ്കിലും ചിഹ്നങ്ങൾ പരിഹരിക്കുകയാണെങ്കിൽ
ഒബ്ജക്റ്റ്, എന്നതിൽ ഒരു നിർവ്വചനം ഉണ്ടോ എന്ന് അത് ആദ്യം പരിശോധിക്കും
പങ്കിട്ട വസ്തു പേര്. ഒന്നുണ്ടെങ്കിൽ പകരം ഉപയോഗിക്കും
ഫിൽട്ടർ ഒബ്ജക്റ്റിലെ നിർവചനം. പങ്കിട്ട വസ്തു പേര് ആവശ്യം
നിലവിലില്ല. അങ്ങനെ പങ്കിട്ട വസ്തു പേര് ഒരു നൽകാൻ ഉപയോഗിച്ചേക്കാം
ചില ഫംഗ്ഷനുകളുടെ ഇതര നടപ്പാക്കൽ, ഒരുപക്ഷേ
ഡീബഗ്ഗിംഗ് അല്ലെങ്കിൽ മെഷീൻ നിർദ്ദിഷ്ട പ്രകടനത്തിന്.
ഈ ഓപ്ഷൻ ഒന്നിലധികം തവണ വ്യക്തമാക്കിയേക്കാം. DT_AUXILIARY
എൻട്രികൾ അവ ദൃശ്യമാകുന്ന ക്രമത്തിൽ സൃഷ്ടിക്കപ്പെടും
കമാൻഡ് ലൈൻ.
-F പേര്
--ഫിൽറ്റർ=പേര്
ഒരു ELF പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ, ആന്തരിക DT_FILTER സജ്ജമാക്കുക
നിർദ്ദിഷ്ട പേരിലേക്ക് ഫീൽഡ്. ഇത് ഡൈനാമിക് ലിങ്കറോട് അത് പറയുന്നു
സൃഷ്ടിക്കുന്ന പങ്കിട്ട ഒബ്ജക്റ്റിന്റെ ചിഹ്ന പട്ടിക ഉണ്ടായിരിക്കണം
പങ്കിട്ട ഒബ്ജക്റ്റിന്റെ ചിഹ്ന പട്ടികയിൽ ഒരു ഫിൽട്ടറായി ഉപയോഗിക്കും പേര്.
നിങ്ങൾ പിന്നീട് ഈ ഫിൽട്ടർ ഒബ്ജക്റ്റിനെതിരെ ഒരു പ്രോഗ്രാം ലിങ്ക് ചെയ്താൽ, എപ്പോൾ
നിങ്ങൾ പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുക, ഡൈനാമിക് ലിങ്കർ DT_FILTER കാണും
വയൽ. ഡൈനാമിക് ലിങ്കർ അനുസരിച്ച് ചിഹ്നങ്ങൾ പരിഹരിക്കും
സാധാരണ പോലെ ഫിൽട്ടർ ഒബ്ജക്റ്റിന്റെ ചിഹ്ന പട്ടിക, പക്ഷേ അത് യഥാർത്ഥത്തിൽ ചെയ്യും
പങ്കിട്ട ഒബ്ജക്റ്റിൽ കാണുന്ന നിർവചനങ്ങളിലേക്കുള്ള ലിങ്ക് പേര്. അങ്ങനെ
ചിഹ്നങ്ങളുടെ ഒരു ഉപവിഭാഗം തിരഞ്ഞെടുക്കാൻ ഫിൽട്ടർ ഒബ്ജക്റ്റ് ഉപയോഗിക്കാം
വസ്തു നൽകിയത് പേര്.
ചില പഴയ ലിങ്കർമാർ ഉപയോഗിച്ചു -F ഒരു സമാഹാരത്തിലുടനീളം ഓപ്ഷൻ
ഇൻപുട്ടിനും ഒപ്പം ഒബ്ജക്റ്റ്-ഫയൽ ഫോർമാറ്റ് വ്യക്തമാക്കുന്നതിനുള്ള ടൂൾചെയിൻ
ഔട്ട്പുട്ട് ഒബ്ജക്റ്റ് ഫയലുകൾ. ഗ്നു ലിങ്കർ ഇതിനായി മറ്റ് സംവിധാനങ്ങൾ ഉപയോഗിക്കുന്നു
ഉദ്ദേശ്യം: ദി -b, --ഫോർമാറ്റ്, --ഓഫോർമാറ്റ് ഓപ്ഷനുകൾ, "TARGET" കമാൻഡ്
ലിങ്കർ സ്ക്രിപ്റ്റുകളിലും "GNUTARGET" എൻവയോൺമെന്റ് വേരിയബിളിലും. ദി
GNU ലിങ്കർ അവഗണിക്കും -F ഒരു ELF സൃഷ്ടിക്കാത്തപ്പോൾ ഓപ്ഷൻ
പങ്കിട്ട വസ്തു.
-ഫിനി=പേര്
ഒരു ELF എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ, എപ്പോൾ NAME-നെ വിളിക്കുക
DT_FINI എന്ന് സജ്ജീകരിക്കുന്നതിലൂടെ എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ഒബ്ജക്റ്റ് അൺലോഡ് ചെയ്യുന്നു
ചടങ്ങിന്റെ വിലാസം. സ്ഥിരസ്ഥിതിയായി, ലിങ്കർ "_fini" ഉപയോഗിക്കുന്നു
വിളിക്കാനുള്ള പ്രവർത്തനമായി.
-g അവഗണിച്ചു. മറ്റ് ഉപകരണങ്ങളുമായി അനുയോജ്യതയ്ക്കായി നൽകിയിരിക്കുന്നു.
-G മൂല്യം
--gpsize=മൂല്യം
GP ഉപയോഗിച്ച് ഒപ്റ്റിമൈസ് ചെയ്യേണ്ട ഒബ്ജക്റ്റുകളുടെ പരമാവധി വലുപ്പം സജ്ജമാക്കുക
രജിസ്റ്റർ ചെയ്യുക വലുപ്പം. ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകൾക്ക് മാത്രമേ ഇത് അർത്ഥവത്തായിട്ടുള്ളൂ
MIPS ELF പോലെയുള്ള വലുതും ചെറുതുമായ ഒബ്ജക്റ്റുകൾ ഇടുന്നത് പിന്തുണയ്ക്കുന്നു
വ്യത്യസ്ത വിഭാഗങ്ങൾ. മറ്റ് ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകൾക്കായി ഇത് അവഗണിക്കപ്പെടുന്നു.
-h പേര്
-സോനാമേ=പേര്
ഒരു ELF പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ, ആന്തരിക DT_SONAME സജ്ജമാക്കുക
നിർദ്ദിഷ്ട പേരിലേക്ക് ഫീൽഡ്. ഒരു എക്സിക്യൂട്ടബിൾ a മായി ലിങ്ക് ചെയ്യുമ്പോൾ
DT_SONAME ഫീൽഡ് ഉള്ള പങ്കിട്ട ഒബ്ജക്റ്റ്, തുടർന്ന് എക്സിക്യൂട്ടബിൾ ആയിരിക്കുമ്പോൾ
പ്രവർത്തിപ്പിക്കുമ്പോൾ ഡൈനാമിക് ലിങ്കർ പങ്കിട്ട ഒബ്ജക്റ്റ് ലോഡ് ചെയ്യാൻ ശ്രമിക്കും
ഫയൽ ഉപയോഗിക്കുന്നതിനേക്കാൾ DT_SONAME ഫീൽഡ് വ്യക്തമാക്കിയതാണ്
ലിങ്കറിന് നൽകിയിരിക്കുന്ന പേര്.
-i ഒരു ഇൻക്രിമെന്റൽ ലിങ്ക് നടത്തുക (ഓപ്ഷൻ പോലെ തന്നെ -r).
-init=പേര്
ഒരു ELF എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ, എപ്പോൾ NAME-നെ വിളിക്കുക
DT_INIT എന്ന് സജ്ജീകരിക്കുന്നതിലൂടെ എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ഒബ്ജക്റ്റ് ലോഡ് ചെയ്തു
ചടങ്ങിന്റെ വിലാസം. സ്ഥിരസ്ഥിതിയായി, ലിങ്കർ "_init" ഉപയോഗിക്കുന്നു
വിളിക്കാനുള്ള പ്രവർത്തനമായി.
-l നെയിംസ്പെക്
--ലൈബ്രറി=നെയിംസ്പെക്
വ്യക്തമാക്കിയ ആർക്കൈവ് അല്ലെങ്കിൽ ഒബ്ജക്റ്റ് ഫയൽ ചേർക്കുക നെയിംസ്പെക് പട്ടികയിലേക്ക്
ലിങ്ക് ചെയ്യാനുള്ള ഫയലുകൾ. ഈ ഓപ്ഷൻ എത്ര തവണ വേണമെങ്കിലും ഉപയോഗിക്കാം. എങ്കിൽ
നെയിംസ്പെക് രൂപത്തിലുള്ളതാണ് :ഫയലിന്റെ പേര്, ld ലൈബ്രറി വഴി തിരയും
എന്ന ഫയലിനായി ഫയലിന്റെ പേര്, അല്ലെങ്കിൽ അത് ലൈബ്രറിയിൽ തിരയും
എന്ന ഫയലിന്റെ പാത libnamespec.a.
പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന സിസ്റ്റങ്ങളിൽ, ld എന്നതും തിരയാം
അല്ലാത്ത ഫയലുകൾ libnamespec.a. പ്രത്യേകിച്ചും, ELF, SunOS എന്നിവയിൽ
സിസ്റ്റങ്ങൾ, ld എന്ന പേരിൽ ഒരു ലൈബ്രറിക്കായി ഒരു ഡയറക്ടറി തിരയും
libnamespec.so വിളിച്ച ഒരാളെ തിരയുന്നതിന് മുമ്പ് libnamespec.a. (കാരണം
കൺവെൻഷൻ, ഒരു ".so" വിപുലീകരണം ഒരു പങ്കിട്ട ലൈബ്രറിയെ സൂചിപ്പിക്കുന്നു.) ശ്രദ്ധിക്കുക
ഈ സ്വഭാവം ബാധകമല്ല എന്ന് :ഫയലിന്റെ പേര്, ഏത് എപ്പോഴും
എന്ന ഒരു ഫയൽ വ്യക്തമാക്കുന്നു ഫയലിന്റെ പേര്.
ലിങ്കർ ഒരു ആർക്കൈവ് ഒരു തവണ മാത്രമേ തിരയൂ, എവിടെയാണോ അവിടെ
അത് കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയിട്ടുണ്ട്. ആർക്കൈവ് നിർവ്വചിച്ചാൽ a
മുമ്പ് പ്രത്യക്ഷപ്പെട്ട ചില ഒബ്ജക്റ്റിൽ നിർവചിക്കപ്പെട്ടിട്ടില്ലാത്ത ചിഹ്നം
കമാൻഡ് ലൈനിൽ ആർക്കൈവ് ചെയ്യുക, ലിങ്കർ ഉൾപ്പെടും
ആർക്കൈവിൽ നിന്ന് ഉചിതമായ ഫയൽ(കൾ). എന്നിരുന്നാലും, നിർവചിക്കാത്ത ചിഹ്നം
കമാൻഡ് ലൈനിൽ പിന്നീട് ദൃശ്യമാകുന്ന ഒബ്ജക്റ്റിൽ ഇത് കാരണമാകില്ല
ആർക്കൈവ് വീണ്ടും തിരയാനുള്ള ലിങ്കർ.
കാണുക -( ആർക്കൈവുകൾ തിരയാൻ ലിങ്കറെ നിർബന്ധിക്കുന്നതിനുള്ള ഒരു മാർഗ്ഗം
ഒന്നിലധികം തവണ.
കമാൻഡ് ലൈനിൽ നിങ്ങൾക്ക് ഒരേ ആർക്കൈവ് ഒന്നിലധികം തവണ ലിസ്റ്റ് ചെയ്യാം.
ഇത്തരത്തിലുള്ള ആർക്കൈവ് തിരയൽ Unix ലിങ്കറുകൾക്ക് സാധാരണമാണ്.
എന്നിരുന്നാലും, നിങ്ങൾ ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ ld AIX-ൽ, ഇത് വ്യത്യസ്തമാണെന്ന് ശ്രദ്ധിക്കുക
AIX ലിങ്കറിന്റെ പെരുമാറ്റം.
-L തിരയുക
--library-path=തിരയുക
പാത ചേർക്കുക തിരയുക ആ പാതകളുടെ പട്ടികയിലേക്ക് ld അന്വേഷിക്കും
ആർക്കൈവ് ലൈബ്രറികൾ കൂടാതെ ld നിയന്ത്രണ സ്ക്രിപ്റ്റുകൾ. നിങ്ങൾക്ക് ഈ ഓപ്ഷൻ ഉപയോഗിക്കാം
എത്ര തവണ വേണമെങ്കിലും. എന്ന ക്രമത്തിലാണ് ഡയറക്ടറികൾ തിരയുന്നത്
അവ കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയിരിക്കുന്നു. ഡയറക്ടറികൾ
കമാൻഡ് ലൈനിൽ പറഞ്ഞിരിക്കുന്നവ സ്ഥിരസ്ഥിതിക്ക് മുമ്പായി തിരയുന്നു
ഡയറക്ടറികൾ. എല്ലാം -L ഓപ്ഷനുകൾ എല്ലാവർക്കും ബാധകമാണ് -l ഓപ്ഷനുകൾ, പരിഗണിക്കാതെ
ഓപ്ഷനുകൾ ദൃശ്യമാകുന്ന ക്രമം. -L ഓപ്ഷനുകൾ ബാധിക്കില്ല
എങ്ങനെ ld അല്ലാതെ ഒരു ലിങ്കർ സ്ക്രിപ്റ്റിനായി തിരയുന്നു -T ഓപ്ഷൻ വ്യക്തമാക്കിയിട്ടുണ്ട്.
If തിരയുക "=" എന്നതിൽ ആരംഭിക്കുന്നു, തുടർന്ന് "=" എന്നത് മാറ്റിസ്ഥാപിക്കും
സിസ് റൂട്ട് പ്രിഫിക്സ്, നിയന്ത്രിക്കുന്നത് --സിസ് റൂട്ട് ഓപ്ഷൻ, അല്ലെങ്കിൽ വ്യക്തമാക്കിയത്
ലിങ്കർ കോൺഫിഗർ ചെയ്യുമ്പോൾ.
തിരഞ്ഞ പാതകളുടെ സ്ഥിരസ്ഥിതി സെറ്റ് (കൂടാതെ -L)
ഏത് എമുലേഷൻ മോഡിനെ ആശ്രയിച്ചിരിക്കുന്നു ld ഉപയോഗിക്കുന്നു, ചില സന്ദർഭങ്ങളിലും
ഇത് എങ്ങനെ ക്രമീകരിച്ചു എന്നതിനെക്കുറിച്ച്.
എന്നതുമായുള്ള ലിങ്ക് സ്ക്രിപ്റ്റിലും പാതകൾ വ്യക്തമാക്കാം
"SEARCH_DIR" കമാൻഡ്. ഈ രീതിയിൽ വ്യക്തമാക്കിയ ഡയറക്ടറികൾ തിരയുന്നു
കമാൻഡിൽ ലിങ്കർ സ്ക്രിപ്റ്റ് ദൃശ്യമാകുന്ന ഘട്ടത്തിൽ
ലൈൻ.
-m എമുലേഷൻ
അനുകരിക്കുക എമുലേഷൻ ലിങ്കർ. നിങ്ങൾക്ക് ലഭ്യമായവ ലിസ്റ്റ് ചെയ്യാം
കൂടെ അനുകരണങ്ങൾ --വാക്കുകൾ or -V ഓപ്ഷനുകൾ.
എങ്കില് -m ഓപ്ഷൻ ഉപയോഗിക്കുന്നില്ല, എമുലേഷൻ എടുത്തത് എന്നതിൽ നിന്നാണ്
"LDEMULATION" എൻവയോൺമെന്റ് വേരിയബിൾ, അത് നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ.
അല്ലെങ്കിൽ, ഡിഫോൾട്ട് എമുലേഷൻ ലിങ്കർ എങ്ങനെയായിരുന്നു എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു
ക്രമീകരിച്ചിരിക്കുന്നു.
-M
--പ്രിന്റ്-മാപ്പ്
സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്ക് ഒരു ലിങ്ക് മാപ്പ് പ്രിന്റ് ചെയ്യുക. ഒരു ലിങ്ക് മാപ്പ് നൽകുന്നു
ഇനിപ്പറയുന്നവ ഉൾപ്പെടെ ലിങ്കിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ:
· ഒബ്ജക്റ്റ് ഫയലുകൾ മെമ്മറിയിലേക്ക് മാപ്പ് ചെയ്യുന്നിടത്ത്.
· പൊതുവായ ചിഹ്നങ്ങൾ എങ്ങനെയാണ് അനുവദിച്ചിരിക്കുന്നത്.
· എല്ലാ ആർക്കൈവ് അംഗങ്ങളും ലിങ്കിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്
ആർക്കൈവ് അംഗത്തെ കൊണ്ടുവരാൻ കാരണമായ ചിഹ്നം.
· ചിഹ്നങ്ങൾക്ക് നൽകിയിരിക്കുന്ന മൂല്യങ്ങൾ.
കുറിപ്പ് - ഒരു എക്സ്പ്രഷൻ ഉപയോഗിച്ച് മൂല്യങ്ങൾ കണക്കാക്കുന്ന ചിഹ്നങ്ങൾ
അതേ ചിഹ്നത്തിന്റെ മുൻ മൂല്യത്തിലേക്കുള്ള ഒരു റഫറൻസ് ഉൾപ്പെടുന്നു
ലിങ്ക് മാപ്പിൽ ശരിയായ ഫലം പ്രദർശിപ്പിച്ചിട്ടില്ല. ഇതാണ്
കാരണം ലിങ്കർ ഇന്റർമീഡിയറ്റ് ഫലങ്ങൾ നിരസിക്കുന്നു, മാത്രം
ഒരു പദപ്രയോഗത്തിന്റെ അന്തിമ മൂല്യം നിലനിർത്തുന്നു. അത്തരം കീഴിൽ
സാഹചര്യങ്ങൾ ലിങ്കർ അവസാന മൂല്യം പ്രദർശിപ്പിക്കും
ചതുര ബ്രാക്കറ്റുകൾ പ്രകാരം. ഉദാഹരണത്തിന് ഒരു ലിങ്കർ സ്ക്രിപ്റ്റ്
അടങ്ങിയിരിക്കുന്നു:
foo = 1
foo = foo * 4
foo = foo + 8
എങ്കിൽ ലിങ്ക് മാപ്പിൽ ഇനിപ്പറയുന്ന ഔട്ട്പുട്ട് നിർമ്മിക്കും -M
ഓപ്ഷൻ ഉപയോഗിക്കുന്നു:
0x00000001 foo = 0x1
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)
കാണുക ഭാവങ്ങൾ പദപ്രയോഗങ്ങളെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്
ലിങ്കർ സ്ക്രിപ്റ്റുകൾ.
-n
--മാജിക്
വിഭാഗങ്ങളുടെ പേജ് വിന്യാസം ഓഫാക്കുക, നേരെയുള്ള ലിങ്കിംഗ് പ്രവർത്തനരഹിതമാക്കുക
ലൈബ്രറികൾ പങ്കിട്ടു. ഔട്ട്പുട്ട് ഫോർമാറ്റ് Unix സ്റ്റൈൽ മാജിക് പിന്തുണയ്ക്കുന്നുവെങ്കിൽ
നമ്പറുകൾ, ഔട്ട്പുട്ട് "NMAGIC" എന്ന് അടയാളപ്പെടുത്തുക.
-N
--ഓമാജിക്
ടെക്സ്റ്റ്, ഡാറ്റ വിഭാഗങ്ങൾ വായിക്കാനും എഴുതാനും കഴിയുന്ന തരത്തിൽ സജ്ജമാക്കുക. കൂടാതെ,
ഡാറ്റാ സെഗ്മെന്റ് പേജ് വിന്യസിക്കരുത്, അതിനെതിരായ ലിങ്കിംഗ് പ്രവർത്തനരഹിതമാക്കുക
ലൈബ്രറികൾ പങ്കിട്ടു. ഔട്ട്പുട്ട് ഫോർമാറ്റ് Unix സ്റ്റൈൽ മാജിക് പിന്തുണയ്ക്കുന്നുവെങ്കിൽ
നമ്പറുകൾ, ഔട്ട്പുട്ട് "OMAGIC" എന്ന് അടയാളപ്പെടുത്തുക. കുറിപ്പ്: എഴുതാവുന്നതാണെങ്കിലും
PE-COFF ടാർഗെറ്റുകൾക്ക് ടെക്സ്റ്റ് വിഭാഗം അനുവദനീയമാണ്, അത് അനുസരിക്കുന്നില്ല
മൈക്രോസോഫ്റ്റ് പ്രസിദ്ധീകരിച്ച ഫോർമാറ്റ് സ്പെസിഫിക്കേഷൻ.
--നോ-ഓമാജിക്
ഈ ഓപ്ഷൻ മിക്ക ഫലങ്ങളെയും നിരാകരിക്കുന്നു -N ഓപ്ഷൻ. അത് സജ്ജമാക്കുന്നു
ടെക്സ്റ്റ് സെക്ഷൻ വായിക്കാൻ മാത്രം, ഡാറ്റ സെഗ്മെന്റ് ആകാൻ നിർബന്ധിക്കുന്നു
പേജ് വിന്യസിച്ചിരിക്കുന്നു. ശ്രദ്ധിക്കുക - ഈ ഓപ്ഷൻ എതിരായി ലിങ്കുചെയ്യുന്നത് പ്രവർത്തനക്ഷമമാക്കുന്നില്ല
ലൈബ്രറികൾ പങ്കിട്ടു. ഉപയോഗിക്കുക -Bdynamic ഇതിനായി.
-o ഔട്ട്പുട്ട്
--ഔട്ട്പുട്ട്=ഔട്ട്പുട്ട്
ഉപയോഗം ഔട്ട്പുട്ട് നിർമ്മിച്ച പ്രോഗ്രാമിന്റെ പേരായി ld; ഇതാണെങ്കിൽ
ഓപ്ഷൻ വ്യക്തമാക്കിയിട്ടില്ല, പേര് a.out സ്ഥിരസ്ഥിതിയായി ഉപയോഗിക്കുന്നു. ദി
സ്ക്രിപ്റ്റ് കമാൻഡ് "OUTPUT" ന് ഔട്ട്പുട്ട് ഫയലിന്റെ പേര് വ്യക്തമാക്കാനും കഴിയും.
-O ലെവൽ
If ലെവൽ പൂജ്യത്തേക്കാൾ വലിയ ഒരു സംഖ്യാ മൂല്യമാണ് ld ഒപ്റ്റിമൈസ് ചെയ്യുന്നു
ഔട്ട്പുട്ട്. ഇത് ഗണ്യമായി കൂടുതൽ സമയമെടുത്തേക്കാം, അതിനാൽ
ഒരുപക്ഷേ അന്തിമ ബൈനറിക്ക് വേണ്ടി മാത്രമേ പ്രവർത്തനക്ഷമമാക്കാവൂ. അവിടെ
ഈ ഓപ്ഷൻ ELF പങ്കിട്ട ലൈബ്രറി ജനറേഷനെ മാത്രമേ ബാധിക്കുകയുള്ളൂ.
ലിങ്കറിന്റെ ഭാവി റിലീസുകൾ ഈ ഓപ്ഷൻ കൂടുതൽ ഉപയോഗിച്ചേക്കാം.
കൂടാതെ, ലിങ്കറുടെ പെരുമാറ്റത്തിൽ നിലവിൽ വ്യത്യാസമില്ല
ഈ ഓപ്ഷന്റെ വ്യത്യസ്ത നോൺ-സീറോ മൂല്യങ്ങൾ. ഇത് വീണ്ടും മാറിയേക്കാം
ഭാവി റിലീസുകൾക്കൊപ്പം.
--പുഷ്-സ്റ്റേറ്റ്
ദി --പുഷ്-സ്റ്റേറ്റ് പതാകകളുടെ നിലവിലെ അവസ്ഥ സംരക്ഷിക്കാൻ അനുവദിക്കുന്നു
ഇൻപുട്ട് ഫയൽ കൈകാര്യം ചെയ്യുന്നതിനെ നിയന്ത്രിക്കുന്നതിനാൽ അവയെല്ലാം ആകാം
അനുബന്ധമായ ഒന്ന് ഉപയോഗിച്ച് പുനഃസ്ഥാപിച്ചു --പോപ്പ്-സ്റ്റേറ്റ് ഓപ്ഷൻ.
കവർ ചെയ്യുന്ന ഓപ്ഷൻ ഇവയാണ്: -Bdynamic, - ബിസ്റ്റാറ്റിക്, -dn, -dy,
-കോൾ_ഷെയർ ചെയ്തു, -പങ്കിടാത്തത്, - സ്റ്റാറ്റിക്, -N, -n, --മുഴുവൻ ആർക്കൈവ്,
--no- whole-archive, -r, -ഉർ, --copy-dt-needed-entries,
--no-copy-dt-needed-entries, --ആവശ്യത്തിനനുസരിച്ച്, --ആവശ്യമില്ല, ഒപ്പം -a.
ഈ ഓപ്ഷന്റെ ഒരു ലക്ഷ്യം സ്പെസിഫിക്കേഷനുകളാണ് pkg-config. എപ്പോൾ
കൂടെ ഉപയോഗിച്ചു --ലിബ്സ് സാധ്യമായ എല്ലാ ലൈബ്രറികളും ആവശ്യമാണ്
ലിസ്റ്റ് ചെയ്ത് എല്ലായ്പ്പോഴും ലിങ്ക് ചെയ്തിരിക്കാം. ചെയ്യുന്നതാണ് നല്ലത്
ഇനിപ്പറയുന്ന രീതിയിൽ എന്തെങ്കിലും തിരികെ നൽകുക:
-Wl,--പുഷ്-സ്റ്റേറ്റ്,--ആവശ്യത്തിന് -libone -libtwo -Wl,--pop-state
--push-state ന്റെ പ്രഭാവം പഴയപടിയാക്കുന്നു, മുൻ മൂല്യങ്ങൾ പുനഃസ്ഥാപിക്കുന്നു
ഇൻപുട്ട് ഫയൽ കൈകാര്യം ചെയ്യുന്ന ഫ്ലാഗുകൾ.
-q
--എമിറ്റ്-റെലോക്ക്സ്
പൂർണ്ണമായി ലിങ്ക് ചെയ്ത എക്സിക്യൂട്ടബിളുകളിൽ റീലൊക്കേഷൻ വിഭാഗങ്ങളും ഉള്ളടക്കങ്ങളും വിടുക.
പോസ്റ്റ് ലിങ്ക് വിശകലനത്തിനും ഒപ്റ്റിമൈസേഷൻ ടൂളുകൾക്കും ഈ വിവരങ്ങൾ ആവശ്യമായി വന്നേക്കാം
എക്സിക്യൂട്ടബിളുകളുടെ ശരിയായ പരിഷ്ക്കരണങ്ങൾ നടപ്പിലാക്കുന്നതിനായി. ഈ
വലിയ എക്സിക്യൂട്ടബിളുകളിൽ ഫലം.
ഈ ഓപ്ഷൻ നിലവിൽ ELF പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ പിന്തുണയ്ക്കൂ.
--ഫോഴ്സ്-ഡൈനാമിക്
ഔട്ട്പുട്ട് ഫയലിൽ ഡൈനാമിക് വിഭാഗങ്ങൾ ഉണ്ടായിരിക്കാൻ നിർബന്ധിക്കുക. ഈ ഓപ്ഷൻ ആണ്
VxWorks ടാർഗെറ്റുകൾക്ക് പ്രത്യേകം.
-r
-- സ്ഥലം മാറ്റാവുന്നത്
മാറ്റിസ്ഥാപിക്കാവുന്ന ഔട്ട്പുട്ട് ജനറേറ്റ് ചെയ്യുക--- അതായത്, ഒരു ഔട്ട്പുട്ട് ഫയൽ സൃഷ്ടിക്കുക
എന്നതിലേക്ക് ഇൻപുട്ടായി പ്രവർത്തിക്കാനാകും ld. ഇത് പലപ്പോഴും വിളിക്കപ്പെടുന്നു ഭാഗികം
ലിങ്കുചെയ്യുന്നു. ഒരു പാർശ്വഫലമായി, നിലവാരത്തെ പിന്തുണയ്ക്കുന്ന പരിതസ്ഥിതികളിൽ
Unix മാജിക് നമ്പറുകൾ, ഈ ഓപ്ഷൻ ഔട്ട്പുട്ട് ഫയലിന്റെ മാജിക് സജ്ജീകരിക്കുന്നു
"OMAGIC" എന്നതിലേക്കുള്ള നമ്പർ. ഈ ഓപ്ഷൻ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഒരു കേവലം
ഫയൽ നിർമ്മിക്കുന്നു. C++ പ്രോഗ്രാമുകൾ ലിങ്ക് ചെയ്യുമ്പോൾ, ഈ ഓപ്ഷൻ ഉദ്ദേശിക്കുന്ന അല്ല
കൺസ്ട്രക്ടറുകൾക്കുള്ള റഫറൻസുകൾ പരിഹരിക്കുക; അത് ചെയ്യാൻ, ഉപയോഗിക്കുക -ഉർ.
ഒരു ഇൻപുട്ട് ഫയലിന് ഔട്ട്പുട്ടിന്റെ അതേ ഫോർമാറ്റ് ഇല്ലെങ്കിൽ
ഫയൽ, ആ ഇൻപുട്ട് ഫയൽ ഇല്ലെങ്കിൽ മാത്രമേ ഭാഗിക ലിങ്കിംഗ് പിന്തുണയ്ക്കൂ
ഏതെങ്കിലും സ്ഥലംമാറ്റങ്ങൾ അടങ്ങിയിരിക്കുന്നു. വ്യത്യസ്ത ഔട്ട്പുട്ട് ഫോർമാറ്റുകൾക്ക് ഇനിയുമുണ്ടാകാം
നിയന്ത്രണങ്ങൾ; ഉദാഹരണത്തിന് ചില "a.out"-അടിസ്ഥാന ഫോർമാറ്റുകൾ പിന്തുണയ്ക്കുന്നില്ല
മറ്റ് ഫോർമാറ്റുകളിലെ ഇൻപുട്ട് ഫയലുകളുമായി ഭാഗിക ലിങ്കിംഗ്.
ഈ ഓപ്ഷനും അതേ കാര്യം തന്നെ ചെയ്യുന്നു -i.
-R ഫയലിന്റെ പേര്
--വെറും-ചിഹ്നങ്ങൾ=ഫയലിന്റെ പേര്
ചിഹ്ന നാമങ്ങളും അവയുടെ വിലാസങ്ങളും വായിക്കുക ഫയലിന്റെ പേര്, എന്നാൽ ചെയ്യരുത്
അത് മാറ്റിസ്ഥാപിക്കുക അല്ലെങ്കിൽ ഔട്ട്പുട്ടിൽ ഉൾപ്പെടുത്തുക. ഇത് നിങ്ങളുടെ ഔട്ട്പുട്ട് അനുവദിക്കുന്നു
നിർവചിച്ച മെമ്മറിയുടെ കേവല സ്ഥാനങ്ങളിലേക്ക് പ്രതീകാത്മകമായി സൂചിപ്പിക്കാനുള്ള ഫയൽ
മറ്റ് പ്രോഗ്രാമുകളിൽ. നിങ്ങൾക്ക് ഈ ഓപ്ഷൻ ഒന്നിലധികം തവണ ഉപയോഗിക്കാം.
മറ്റ് ELF ലിങ്കറുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി, എങ്കിൽ -R ഓപ്ഷൻ ആണ്
ഫയലിന്റെ പേരിനുപകരം ഒരു ഡയറക്ടറി നാമം പിന്തുടരുന്നു
ആയി കണക്കാക്കുന്നു -rpath ഓപ്ഷൻ.
-s
--സ്ട്രിപ്പ്-എല്ലാം
ഔട്ട്പുട്ട് ഫയലിൽ നിന്ന് എല്ലാ ചിഹ്ന വിവരങ്ങളും ഒഴിവാക്കുക.
-S
--സ്ട്രിപ്പ്-ഡീബഗ്
എന്നതിൽ നിന്ന് ഡീബഗ്ഗർ ചിഹ്ന വിവരങ്ങൾ (എല്ലാ ചിഹ്നങ്ങളും അല്ല) ഒഴിവാക്കുക
ഔട്ട്പുട്ട് ഫയൽ.
-t
--ട്രേസ്
ഇൻപുട്ട് ഫയലുകളുടെ പേരുകൾ ഇതായി പ്രിന്റ് ചെയ്യുക ld അവരെ പ്രോസസ്സ് ചെയ്യുന്നു.
-T സ്ക്രിപ്റ്റ്ഫയൽ
--സ്ക്രിപ്റ്റ്=സ്ക്രിപ്റ്റ്ഫയൽ
ഉപയോഗം സ്ക്രിപ്റ്റ്ഫയൽ ലിങ്കർ സ്ക്രിപ്റ്റ് ആയി. ഈ സ്ക്രിപ്റ്റ് മാറ്റിസ്ഥാപിക്കുന്നു ld's
ഡിഫോൾട്ട് ലിങ്കർ സ്ക്രിപ്റ്റ് (അതിലേക്ക് ചേർക്കുന്നതിനുപകരം), അങ്ങനെ കമാൻഡ് ഫയൽ
ഔട്ട്പുട്ട് ഫയൽ വിവരിക്കുന്നതിന് ആവശ്യമായ എല്ലാം വ്യക്തമാക്കണം.
If സ്ക്രിപ്റ്റ്ഫയൽ നിലവിലെ ഡയറക്ടറിയിൽ നിലവിലില്ല, "ld" നോക്കുന്നു
അതിന് മുമ്പുള്ള ഏതെങ്കിലും ഡയറക്ടറികളിൽ -L ഓപ്ഷനുകൾ.
ഒന്നിലധികം -T ഓപ്ഷനുകൾ കുമിഞ്ഞുകൂടുന്നു.
-dT സ്ക്രിപ്റ്റ്ഫയൽ
--default-script=സ്ക്രിപ്റ്റ്ഫയൽ
ഉപയോഗം സ്ക്രിപ്റ്റ്ഫയൽ ഡിഫോൾട്ട് ലിങ്കർ സ്ക്രിപ്റ്റ് ആയി.
ഈ ഓപ്ഷൻ സമാനമാണ് --സ്ക്രിപ്റ്റ് അത് ഒഴികെയുള്ള ഓപ്ഷൻ
സ്ക്രിപ്റ്റിന്റെ പ്രോസസ്സിംഗ് ബാക്കിയുള്ളത് വരെ വൈകും
കമാൻഡ് ലൈൻ പ്രോസസ്സ് ചെയ്തു. ഇത് ശേഷം സ്ഥാപിക്കുന്ന ഓപ്ഷനുകൾ അനുവദിക്കുന്നു
The --default-script എന്നതിനെ ബാധിക്കുന്നതിനുള്ള കമാൻഡ് ലൈനിലെ ഓപ്ഷൻ
ലിങ്കർ സ്ക്രിപ്റ്റിന്റെ പെരുമാറ്റം, അത് എപ്പോൾ പ്രധാനമാണ്
ലിങ്കർ കമാൻഡ് ലൈൻ ഉപയോക്താവിന് നേരിട്ട് നിയന്ത്രിക്കാൻ കഴിയില്ല. (ഉദാ
കാരണം കമാൻഡ് ലൈൻ നിർമ്മിക്കുന്നത് മറ്റൊരു ടൂൾ ഉപയോഗിച്ചാണ്
as ജിസി).
-u ചിഹ്നം
--defined=ചിഹ്നം
ശക്തിയാണ് ചിഹ്നം ഔട്ട്പുട്ട് ഫയലിൽ നിർവചിക്കാത്തതായി നൽകണം
ചിഹ്നം. ഇത് ചെയ്യുന്നത്, ഉദാഹരണത്തിന്, അഡീഷണൽ ലിങ്കിംഗ് ട്രിഗർ ചെയ്തേക്കാം
സാധാരണ ലൈബ്രറികളിൽ നിന്നുള്ള മൊഡ്യൂളുകൾ. -u വ്യത്യസ്തമായി ആവർത്തിക്കാം
അധിക നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ നൽകുന്നതിനുള്ള ഓപ്ഷൻ ആർഗ്യുമെന്റുകൾ. ഈ
ഓപ്ഷൻ "EXTERN" ലിങ്കർ സ്ക്രിപ്റ്റ് കമാൻഡിന് തുല്യമാണ്.
അധിക മൊഡ്യൂളുകൾ നിർബന്ധമാക്കാൻ ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നുവെങ്കിൽ
ലിങ്കിലേക്ക് വലിച്ചു, അത് ചിഹ്നത്തിന് ഒരു പിശക് ആണെങ്കിൽ
നിർവചിക്കപ്പെടാതെ തുടരുക, തുടർന്ന് ഓപ്ഷൻ --ആവശ്യമാണ്-നിർവചിച്ചിരിക്കുന്നത് ഉപയോഗിക്കണം
പകരം.
--require-defined=ചിഹ്നം
അത് ആവശ്യപ്പെടുക ചിഹ്നം ഔട്ട്പുട്ട് ഫയലിൽ നിർവചിച്ചിരിക്കുന്നു. ഈ ഓപ്ഷൻ ആണ്
ഓപ്ഷൻ പോലെ തന്നെ --നിർവചിക്കപ്പെട്ടിട്ടില്ല എങ്കിൽ ഒഴികെ ചിഹ്നം നിർവചിച്ചിട്ടില്ല
ഔട്ട്പുട്ട് ഫയലിൽ, ലിങ്കർ ഒരു പിശക് പുറപ്പെടുവിക്കുകയും പുറത്തുകടക്കുകയും ചെയ്യും.
ഒരു ലിങ്കർ സ്ക്രിപ്റ്റിലും ഇതേ ഇഫക്റ്റ് നേടാനാകും
"EXTERN", "ASSERT", "defined" എന്നിവ ഒരുമിച്ച്. ഈ ഓപ്ഷൻ ഉപയോഗിക്കാം
അധിക ചിഹ്നങ്ങൾ ആവശ്യപ്പെടുന്നതിന് ഒന്നിലധികം തവണ.
-ഉർ C++ പ്രോഗ്രാമുകൾ ഒഴികെ മറ്റെന്തെങ്കിലും, ഈ ഓപ്ഷൻ ഇതിന് തുല്യമാണ്
-r: അത് മാറ്റിസ്ഥാപിക്കാവുന്ന ഔട്ട്പുട്ട് സൃഷ്ടിക്കുന്നു---അതായത്, കഴിയുന്ന ഒരു ഔട്ട്പുട്ട് ഫയൽ
എന്നതിലേക്ക് ഇൻപുട്ടായി വർത്തിക്കുന്നു ld. C++ പ്രോഗ്രാമുകൾ ലിങ്ക് ചെയ്യുമ്പോൾ, -ഉർ ചെയ്യുന്നവൻ
കൺസ്ട്രക്ടറുകൾക്കുള്ള റഫറൻസുകൾ പരിഹരിക്കുക -r. അത് പ്രവർത്തിക്കുന്നില്ല
ഉപയോഗം -ഉർ സ്വയം ലിങ്ക് ചെയ്ത ഫയലുകളിൽ -ഉർ; ഒരിക്കൽ
കൺസ്ട്രക്റ്റർ ടേബിൾ നിർമ്മിച്ചു, ഇതിലേക്ക് ചേർക്കാൻ കഴിയില്ല. ഉപയോഗിക്കുക -ഉർ
അവസാന ഭാഗിക ലിങ്കിന് മാത്രം, കൂടാതെ -r മറ്റുള്ളവർക്ക്.
--orphan-handling=MODE
അനാഥ വിഭാഗങ്ങൾ എങ്ങനെ കൈകാര്യം ചെയ്യുന്നുവെന്ന് നിയന്ത്രിക്കുക. ഒരു അനാഥ വിഭാഗം ഒന്നാണ്
ഒരു ലിങ്കർ സ്ക്രിപ്റ്റിൽ പ്രത്യേകം പരാമർശിച്ചിട്ടില്ല.
MODE ഇനിപ്പറയുന്ന ഏതെങ്കിലും മൂല്യങ്ങൾ ഉണ്ടായിരിക്കാം:
"സ്ഥലം"
അനാഥ വിഭാഗങ്ങൾ അനുയോജ്യമായ ഒരു ഔട്ട്പുട്ട് വിഭാഗത്തിൽ സ്ഥാപിച്ചിരിക്കുന്നു
വിവരിച്ചിരിക്കുന്ന തന്ത്രം പിന്തുടരുന്നു അനാഥൻ വിഭാഗങ്ങൾ. ദി
ഓപ്ഷൻ --അതുല്യമായ വിഭാഗങ്ങൾ എങ്ങനെ സ്ഥാപിക്കുന്നു എന്നതിനെയും ബാധിക്കുന്നു.
"നിരസിക്കുക"
എല്ലാ അനാഥ വിഭാഗങ്ങളും അവയിൽ സ്ഥാപിക്കുന്നതിലൂടെ ഉപേക്ഷിക്കപ്പെടുന്നു
/നിരസിക്കുക/ വിഭാഗം.
"മുന്നറിയിപ്പ്"
ലിങ്കർ അനാഥ വിഭാഗത്തെ "സ്ഥലം" പോലെ സ്ഥാപിക്കും
മുന്നറിയിപ്പ് നൽകുകയും ചെയ്യുന്നു.
"പിശക്"
ഏതെങ്കിലും അനാഥ വിഭാഗമാണെങ്കിൽ ലിങ്കർ ഒരു പിശകോടെ പുറത്തുകടക്കും
കണ്ടെത്തി.
എങ്കിൽ സ്ഥിരസ്ഥിതി --അനാഥ-കൈകാര്യം നൽകിയിട്ടില്ല എന്നത് "സ്ഥലം" ആണ്.
--അതുല്യം[=വിഭാഗം]
ഓരോ ഇൻപുട്ട് സെക്ഷൻ പൊരുത്തപ്പെടുത്തലിനും ഒരു പ്രത്യേക ഔട്ട്പുട്ട് വിഭാഗം സൃഷ്ടിക്കുന്നു
വിഭാഗം, അല്ലെങ്കിൽ ഓപ്ഷണൽ വൈൽഡ്കാർഡ് ആണെങ്കിൽ വിഭാഗം വാദം കാണുന്നില്ല,
ഓരോ അനാഥ ഇൻപുട്ട് വിഭാഗത്തിനും. ഒരു അനാഥ വിഭാഗം ഒന്നുമല്ല
ഒരു ലിങ്കർ സ്ക്രിപ്റ്റിൽ പ്രത്യേകം സൂചിപ്പിച്ചിരിക്കുന്നു. നിങ്ങൾക്ക് ഈ ഓപ്ഷൻ ഉപയോഗിക്കാം
കമാൻഡ് ലൈനിൽ ഒന്നിലധികം തവണ; ഇത് സാധാരണ ലയനത്തെ തടയുന്നു
ഒരേ പേരിലുള്ള ഇൻപുട്ട് വിഭാഗങ്ങളുടെ, ഔട്ട്പുട്ട് വിഭാഗത്തെ മറികടക്കുന്നു
ഒരു ലിങ്കർ സ്ക്രിപ്റ്റിലെ അസൈൻമെന്റുകൾ.
-v
--പതിപ്പ്
-V ഇതിനായുള്ള പതിപ്പ് നമ്പർ പ്രദർശിപ്പിക്കുക ld. ദി -V ഓപ്ഷനും ലിസ്റ്റ് ചെയ്യുന്നു
പിന്തുണയുള്ള അനുകരണങ്ങൾ.
-x
--എല്ലാം ഉപേക്ഷിക്കുക
എല്ലാ പ്രാദേശിക ചിഹ്നങ്ങളും ഇല്ലാതാക്കുക.
-X
--പ്രാദേശികരെ നിരസിക്കുക
എല്ലാ താൽക്കാലിക പ്രാദേശിക ചിഹ്നങ്ങളും ഇല്ലാതാക്കുക. (ഈ ചിഹ്നങ്ങൾ ആരംഭിക്കുന്നത്
സിസ്റ്റം-നിർദ്ദിഷ്ട ലോക്കൽ ലേബൽ പ്രിഫിക്സുകൾ, സാധാരണയായി .L ELF സിസ്റ്റങ്ങൾക്കായി
or L പരമ്പരാഗത a.out സിസ്റ്റങ്ങൾക്ക്.)
-y ചിഹ്നം
--trace-symbol=ചിഹ്നം
ലിങ്ക് ചെയ്തിരിക്കുന്ന ഓരോ ഫയലിന്റെയും പേര് പ്രിന്റ് ചെയ്യുക ചിഹ്നം പ്രത്യക്ഷപ്പെടുന്നു. ഈ
ഓപ്ഷൻ എത്ര തവണ വേണമെങ്കിലും നൽകാം. പല സിസ്റ്റങ്ങളിലും അങ്ങനെയാണ്
ഒരു അടിവരയിടാൻ ആവശ്യമാണ്.
നിങ്ങളിൽ നിർവചിക്കാത്ത ഒരു ചിഹ്നം ഉള്ളപ്പോൾ ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്
ലിങ്ക് എന്നാൽ റഫറൻസ് എവിടെ നിന്നാണ് വരുന്നതെന്ന് അറിയില്ല.
-Y പാത
ചേർക്കുക പാത സ്ഥിരസ്ഥിതി ലൈബ്രറി തിരയൽ പാതയിലേക്ക്. ഈ ഓപ്ഷൻ നിലവിലുണ്ട്
സോളാരിസ് അനുയോജ്യതയ്ക്കായി.
-z കീവേഡ്
അംഗീകൃത കീവേഡുകൾ ഇവയാണ്:
കോംബ്രെലോക്ക്
ഒന്നിലധികം റീലോക്ക് വിഭാഗങ്ങൾ സംയോജിപ്പിച്ച് ചലനാത്മകമാക്കുന്നതിന് അവയെ അടുക്കുന്നു
ചിഹ്ന ലുക്ക്അപ്പ് കാഷിംഗ് സാധ്യമാണ്.
defs
ഒബ്ജക്റ്റ് ഫയലുകളിൽ നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ അനുവദിക്കുന്നില്ല. നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ
പങ്കിട്ട ലൈബ്രറികളിൽ ഇപ്പോഴും അനുവദനീയമാണ്.
execstack
എക്സിക്യൂട്ടബിൾ സ്റ്റാക്ക് ആവശ്യമാണെന്ന് ഒബ്ജക്റ്റ് അടയാളപ്പെടുത്തുന്നു.
ഗ്ലോബൽ
ഒരു പങ്കിട്ട ഒബ്ജക്റ്റ് നിർമ്മിക്കുമ്പോൾ മാത്രമേ ഈ ഓപ്ഷൻ അർത്ഥമുള്ളൂ.
ഈ പങ്കിട്ട ഒബ്ജക്റ്റ് നിർവചിച്ചിരിക്കുന്ന ചിഹ്നങ്ങൾ ഇത് ലഭ്യമാക്കുന്നു
പിന്നീട് ലോഡ് ചെയ്ത ലൈബ്രറികളുടെ സിംബൽ റെസലൂഷനുവേണ്ടി.
ആദ്യം
ഒരു പങ്കിട്ട ഒബ്ജക്റ്റ് നിർമ്മിക്കുമ്പോൾ മാത്രമേ ഈ ഓപ്ഷൻ അർത്ഥമുള്ളൂ.
ഇത് ഒബ്ജക്റ്റിനെ അടയാളപ്പെടുത്തുന്നു, അങ്ങനെ അതിന്റെ റൺടൈം സമാരംഭിക്കും
മറ്റേതെങ്കിലും ഒബ്ജക്റ്റുകളുടെ റൺടൈം സമാരംഭത്തിന് മുമ്പ് സംഭവിക്കുന്നു
ഒരേ സമയം പ്രക്രിയയിലേക്ക് കൊണ്ടുവന്നു. അതുപോലെ ദി
റൺടൈമിന് ശേഷം ഒബ്ജക്റ്റിന്റെ റൺടൈം അന്തിമമാക്കൽ സംഭവിക്കും
മറ്റേതെങ്കിലും വസ്തുക്കളുടെ അന്തിമരൂപം.
ഇടപെടുക
എല്ലാത്തിനും മുമ്പായി അതിന്റെ ചിഹ്ന പട്ടിക ഇടപെടുന്ന വസ്തുവിനെ അടയാളപ്പെടുത്തുന്നു
ചിഹ്നങ്ങൾ എന്നാൽ പ്രാഥമിക എക്സിക്യൂട്ടബിൾ.
അലസമായ
എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുമ്പോൾ, അത് അടയാളപ്പെടുത്തുക
ഫംഗ്ഷൻ കോൾ റെസലൂഷൻ മാറ്റിവയ്ക്കാൻ ഡൈനാമിക് ലിങ്കറോട് പറയുക
ഫംഗ്ഷനെ വിളിക്കുന്ന പോയിന്റ് (അലസമായ ബൈൻഡിംഗ്), പകരം
ലോഡ് സമയത്തേക്കാൾ. അലസമായ ബന്ധനമാണ് സ്ഥിരസ്ഥിതി.
loadfltr
ഒബ്ജക്റ്റിന്റെ ഫിൽട്ടറുകൾ ഉടനടി പ്രോസസ്സ് ചെയ്യുന്നതായി അടയാളപ്പെടുത്തുന്നു
റൺടൈം.
muldefs
ഒന്നിലധികം നിർവചനങ്ങൾ അനുവദിക്കുന്നു.
നോകോംബ്രെലോക്
ഒന്നിലധികം റീലോക്ക് വിഭാഗങ്ങൾ സംയോജിപ്പിക്കുന്നത് പ്രവർത്തനരഹിതമാക്കുന്നു.
നോകോപൈറലോക്ക്
പകരം ഉപയോഗിക്കുന്ന ലിങ്കർ ജനറേറ്റഡ് .dynbss വേരിയബിളുകൾ പ്രവർത്തനരഹിതമാക്കുക
പങ്കിട്ട ലൈബ്രറികളിൽ നിർവചിച്ചിരിക്കുന്ന വേരിയബിളുകൾ. ചലനാത്മകതയിൽ കലാശിച്ചേക്കാം
ടെക്സ്റ്റ് സ്ഥാനമാറ്റങ്ങൾ.
nodefaultlib
ഇതിന്റെ ഡിപൻഡൻസികൾക്കായി തിരയുന്ന വസ്തുവിനെ അടയാളപ്പെടുത്തുന്നു
ഒബ്ജക്റ്റ് ഏതെങ്കിലും ഡിഫോൾട്ട് ലൈബ്രറി തിരയൽ പാതകളെ അവഗണിക്കും.
നോഡ്ലെറ്റ്
റൺടൈമിൽ ഒബ്ജക്റ്റ് അൺലോഡ് ചെയ്യാൻ പാടില്ല എന്ന് അടയാളപ്പെടുത്തുന്നു.
നോഡ്ലോപെൻ
"dlopen" എന്നതിലേക്ക് ഒബ്ജക്റ്റ് ലഭ്യമല്ലെന്ന് അടയാളപ്പെടുത്തുന്നു.
നോഡമ്പ്
"dldump" ഉപയോഗിച്ച് ഒബ്ജക്റ്റ് ഡംപ് ചെയ്യാൻ കഴിയില്ലെന്ന് അടയാളപ്പെടുത്തുന്നു.
noexecstack
എക്സിക്യൂട്ടബിൾ സ്റ്റാക്ക് ആവശ്യമില്ലെന്ന് ഒബ്ജക്റ്റ് അടയാളപ്പെടുത്തുന്നു.
ടെക്സ്റ്റ്
പങ്കിട്ട ഒബ്ജക്റ്റിൽ DT_TEXTREL എന്നത് പിശകായി കണക്കാക്കുക.
കുറിപ്പ്
പങ്കിട്ട ഒബ്ജക്റ്റിലെ DT_TEXTREL എന്നത് പിശകായി കണക്കാക്കരുത്.
ടെക്സ്റ്റ്ഓഫ്
പങ്കിട്ട ഒബ്ജക്റ്റിലെ DT_TEXTREL എന്നത് പിശകായി കണക്കാക്കരുത്.
നോറെൽറോ
എന്നതിൽ ഒരു ELF "PT_GNU_RELRO" സെഗ്മെന്റ് ഹെഡർ സൃഷ്ടിക്കരുത്
വസ്തു
ഇപ്പോള് എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുമ്പോൾ, അത് അടയാളപ്പെടുത്തുക
പ്രോഗ്രാം ചെയ്യുമ്പോൾ എല്ലാ ചിഹ്നങ്ങളും പരിഹരിക്കാൻ ഡൈനാമിക് ലിങ്കറോട് പറയുക
ആരംഭിച്ചത്, അല്ലെങ്കിൽ പങ്കിട്ട ലൈബ്രറി ഉപയോഗിക്കുന്നതിന് ലിങ്ക് ചെയ്യുമ്പോൾ
ഫംഗ്ഷൻ കോൾ റെസലൂഷൻ മാറ്റിവയ്ക്കുന്നതിന് പകരം dlopen
ഫംഗ്ഷൻ ആദ്യം വിളിക്കുമ്പോൾ പോയിന്റ്.
ഉത്ഭവം
ഒബ്ജക്റ്റിൽ $ORIGIN അടങ്ങിയിരിക്കാമെന്ന് അടയാളപ്പെടുത്തുന്നു.
റെൽറോ
ഒബ്ജക്റ്റിൽ ഒരു ELF "PT_GNU_RELRO" സെഗ്മെന്റ് ഹെഡർ സൃഷ്ടിക്കുക.
max-page-size=മൂല്യം
എമുലേഷൻ പരമാവധി പേജ് വലുപ്പം സജ്ജമാക്കുക മൂല്യം.
common-page-size=മൂല്യം
എമുലേഷൻ കോമൺ പേജ് സൈസ് ആയി സജ്ജീകരിക്കുക മൂല്യം.
stack-size=മൂല്യം
ഒരു ELF "PT_GNU_STACK" സെഗ്മെന്റിനായി ഒരു സ്റ്റാക്ക് വലുപ്പം വ്യക്തമാക്കുക.
പൂജ്യം വ്യക്തമാക്കുന്നത് പൂജ്യമല്ലാത്ത വലുപ്പത്തിലുള്ള ഏതൊരു ഡിഫോൾട്ടിനെയും അസാധുവാക്കും
"PT_GNU_STACK" സെഗ്മെന്റ് സൃഷ്ടിക്കൽ.
bndplt
PLT എൻട്രികളിൽ എല്ലായ്പ്പോഴും BND പ്രിഫിക്സ് സൃഷ്ടിക്കുക. പിന്തുണയ്ക്കുന്നു
Linux/x86_64.
noextern-protected-data
നിർമ്മിക്കുമ്പോൾ പരിരക്ഷിത ഡാറ്റ ചിഹ്നത്തെ ബാഹ്യമായി കണക്കാക്കരുത്
പങ്കിട്ട ലൈബ്രറി. ഈ ഓപ്ഷൻ ലിങ്കർ ബാക്കെൻഡ് ഡിഫോൾട്ട് അസാധുവാക്കുന്നു.
തെറ്റായ സ്ഥലംമാറ്റങ്ങൾ പരിഹരിക്കാൻ ഇത് ഉപയോഗിക്കാം
കംപൈലർ സൃഷ്ടിച്ച സംരക്ഷിത ഡാറ്റ ചിഹ്നങ്ങൾ. അപ്ഡേറ്റുകൾ ഓണാണ്
മറ്റൊരു മൊഡ്യൂൾ മുഖേന സംരക്ഷിത ഡാറ്റ ചിഹ്നങ്ങൾ ദൃശ്യമാകില്ല
ഫലമായി പങ്കിട്ട ലൈബ്രറി. i386, x86-64 എന്നിവയ്ക്ക് പിന്തുണയുണ്ട്.
call-nop=prefix-addr
call-nop=prefix-nop
call-nop=suffix-nop
call-nop=പ്രിഫിക്സ്-ബൈറ്റ്
call-nop=suffix-ബൈറ്റ്
പരോക്ഷമായി പരിവർത്തനം ചെയ്യുമ്പോൾ 1-ബൈറ്റ് "NOP" പാഡിംഗ് വ്യക്തമാക്കുക
പ്രാദേശികമായി നിർവചിച്ചിരിക്കുന്ന ഫംഗ്ഷനിലേക്ക് വിളിക്കുക, foo, അതിന്റെ GOT സ്ലോട്ട് വഴി.
call-nop=prefix-addr "0x67 കോൾ ഫൂ" സൃഷ്ടിക്കുന്നു.
call-nop=prefix-nop "0x90 കോൾ ഫൂ" സൃഷ്ടിക്കുന്നു.
call-nop=suffix-nop "കോൾ foo 0x90" സൃഷ്ടിക്കുന്നു.
call-nop=പ്രിഫിക്സ്-ബൈറ്റ് സൃഷ്ടിക്കുന്നു"ബൈറ്റ് വിളി foo".
call-nop=suffix-ബൈറ്റ് "കോൾ foo" സൃഷ്ടിക്കുന്നു ബൈറ്റ്". പിന്തുണയ്ക്കുന്നു
i386, x86_64.
സോളാരിസ് അനുയോജ്യതയ്ക്കായി മറ്റ് കീവേഡുകൾ അവഗണിക്കപ്പെടുന്നു.
-( ആർക്കൈവുകൾ -)
--ആരംഭ-ഗ്രൂപ്പ് ആർക്കൈവുകൾ --അവസാനം-ഗ്രൂപ്പ്
ദി ആർക്കൈവുകൾ ആർക്കൈവ് ഫയലുകളുടെ ഒരു ലിസ്റ്റ് ആയിരിക്കണം. അവർ ഒന്നായിരിക്കാം
വ്യക്തമായ ഫയൽ നാമങ്ങൾ, അല്ലെങ്കിൽ -l ഓപ്ഷനുകൾ.
നിർദ്ദിഷ്ട ആർക്കൈവുകൾ പുതിയത് ഉണ്ടാകുന്നതുവരെ ആവർത്തിച്ച് തിരയുന്നു
നിർവചിക്കാത്ത അവലംബങ്ങൾ സൃഷ്ടിക്കപ്പെടുന്നു. സാധാരണയായി, ഒരു ആർക്കൈവ് തിരയുന്നു
കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയ ക്രമത്തിൽ ഒരിക്കൽ മാത്രം.
നിർവചിക്കാത്തത് പരിഹരിക്കാൻ ആ ആർക്കൈവിൽ ഒരു ചിഹ്നം ആവശ്യമുണ്ടെങ്കിൽ
പിന്നീട് ദൃശ്യമാകുന്ന ഒരു ആർക്കൈവിലെ ഒബ്ജക്റ്റ് സൂചിപ്പിക്കുന്ന ചിഹ്നം
കമാൻഡ് ലൈൻ, ലിങ്കർക്ക് അത് പരിഹരിക്കാൻ കഴിയില്ല
റഫറൻസ്. ആർക്കൈവുകൾ ഗ്രൂപ്പുചെയ്യുന്നതിലൂടെ, അവയെല്ലാം തിരയുന്നു
സാധ്യമായ എല്ലാ റഫറൻസുകളും പരിഹരിക്കപ്പെടുന്നതുവരെ ആവർത്തിച്ച്.
ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നതിന് കാര്യമായ പ്രകടന ചിലവ് ഉണ്ട്. അത് ഉത്തമമാണ്
ഒഴിവാക്കാനാകാത്ത വൃത്താകൃതിയിലുള്ള അവലംബങ്ങൾ ഉള്ളപ്പോൾ മാത്രം ഉപയോഗിക്കുക
രണ്ടോ അതിലധികമോ ആർക്കൈവുകൾക്കിടയിൽ.
--accept-unknown-input-arch
--no-accept-unknown-input-arch
ആർക്കിടെക്ചർ ആകാൻ കഴിയാത്ത ഇൻപുട്ട് ഫയലുകൾ സ്വീകരിക്കാൻ ലിങ്കറോട് പറയുന്നു
അംഗീകരിച്ചു. അവ എന്താണെന്ന് ഉപയോക്താവിന് അറിയാമെന്നാണ് അനുമാനം
ഈ അജ്ഞാത ഇൻപുട്ട് ഫയലുകളിൽ ലിങ്ക് ചെയ്യാൻ മനപ്പൂർവ്വം ആഗ്രഹിക്കുന്നു.
2.14 റിലീസ് ചെയ്യുന്നതിന് മുമ്പുള്ള ലിങ്കറിന്റെ ഡിഫോൾട്ട് സ്വഭാവം ഇതായിരുന്നു.
റിലീസ് 2.14 മുതലുള്ള ഡിഫോൾട്ട് സ്വഭാവം അത്തരം നിരസിക്കുക എന്നതാണ്
ഇൻപുട്ട് ഫയലുകൾ, അങ്ങനെ --accept-unknown-input-arch ഓപ്ഷൻ ഉണ്ടായിട്ടുണ്ട്
പഴയ സ്വഭാവം പുനഃസ്ഥാപിക്കാൻ ചേർത്തു.
--ആവശ്യത്തിനനുസരിച്ച്
--ആവശ്യമില്ല
ഡൈനാമിക് ലൈബ്രറികൾക്കുള്ള ELF DT_NEEDED ടാഗുകളെ ഈ ഓപ്ഷൻ ബാധിക്കുന്നു
ശേഷം കമാൻഡ് ലൈനിൽ സൂചിപ്പിച്ചിരിക്കുന്നു --ആവശ്യത്തിനനുസരിച്ച് ഓപ്ഷൻ.
സാധാരണയായി ലിങ്കർ ഓരോ ഡൈനാമിസിനും ഒരു DT_NEEDED ടാഗ് ചേർക്കും
എന്നത് പരിഗണിക്കാതെ കമാൻഡ് ലൈനിൽ ലൈബ്രറി സൂചിപ്പിച്ചിരിക്കുന്നു
ലൈബ്രറി ആവശ്യമാണോ അല്ലയോ. --ആവശ്യത്തിനനുസരിച്ച് ഒരു DT_NEEDED കാരണമാകുന്നു
ഒരു ലൈബ്രറിക്ക് മാത്രമേ ടാഗ് നൽകൂ at ആ ബിന്ദു in The ബന്ധം
ഒരു പതിവിൽ നിന്നുള്ള ദുർബലമല്ലാത്ത നിർവചിക്കാത്ത ചിഹ്ന റഫറൻസ് തൃപ്തിപ്പെടുത്തുന്നു
ഒബ്ജക്റ്റ് ഫയൽ അല്ലെങ്കിൽ, DT_NEEDED ലിസ്റ്റുകളിൽ ലൈബ്രറി കണ്ടെത്തിയില്ലെങ്കിൽ
ആവശ്യമായ മറ്റ് ലൈബ്രറികളുടെ, ദുർബലമല്ലാത്ത നിർവചിക്കാത്ത ചിഹ്ന റഫറൻസ്
ആവശ്യമായ മറ്റൊരു ഡൈനാമിക് ലൈബ്രറിയിൽ നിന്ന്. ഒബ്ജക്റ്റ് ഫയലുകൾ അല്ലെങ്കിൽ ലൈബ്രറികൾ
കമാൻഡ് ലൈനിൽ ദൃശ്യമാകുന്നു ശേഷം പ്രസ്തുത ലൈബ്രറി ഇല്ല
ആവശ്യാനുസരണം ലൈബ്രറി കാണുന്നുണ്ടോ എന്നതിനെ ബാധിക്കും. ഇത് സമാനമാണ്
ആർക്കൈവുകളിൽ നിന്ന് ഒബ്ജക്റ്റ് ഫയലുകൾ വേർതിരിച്ചെടുക്കുന്നതിനുള്ള നിയമങ്ങൾ.
--ആവശ്യമില്ല സ്വതവേയുള്ള പെരുമാറ്റം പുനഃസ്ഥാപിക്കുന്നു.
--ആഡ്-ആവശ്യമുണ്ട്
--ആഡ്-ആവശ്യമില്ല
സമാനതയുള്ളതിനാൽ ഈ രണ്ട് ഓപ്ഷനുകളും ഒഴിവാക്കിയിരിക്കുന്നു
അവരുടെ പേരുകൾ --ആവശ്യത്തിനനുസരിച്ച് ഒപ്പം --ആവശ്യമില്ല ഓപ്ഷനുകൾ. അവർ
വഴി മാറ്റിസ്ഥാപിച്ചിട്ടുണ്ട് --copy-dt-needed-entries ഒപ്പം
--no-copy-dt-needed-entries.
-അുറപ്പിക്കുക കീവേഡ്
SunOS അനുയോജ്യതയ്ക്കായി ഈ ഓപ്ഷൻ അവഗണിക്കപ്പെട്ടിരിക്കുന്നു.
-Bdynamic
-dy
-കോൾ_ഷെയർ ചെയ്തു
ഡൈനാമിക് ലൈബ്രറികൾക്കെതിരായ ലിങ്ക്. ഇത് അർത്ഥപൂർണ്ണമാണ്
പങ്കിട്ട ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്ന പ്ലാറ്റ്ഫോമുകൾ. ഈ ഓപ്ഷൻ ആണ്
സാധാരണയായി ഇത്തരം പ്ലാറ്റ്ഫോമുകളിലെ ഡിഫോൾട്ട്. യുടെ വ്യത്യസ്ത വകഭേദങ്ങൾ
ഈ ഐച്ഛികം വിവിധ സിസ്റ്റങ്ങളുമായുള്ള അനുയോജ്യതയ്ക്കുള്ളതാണ്. ഒരുപക്ഷേ നിങ്ങൾ
കമാൻഡ് ലൈനിൽ ഈ ഓപ്ഷൻ ഒന്നിലധികം തവണ ഉപയോഗിക്കുക: ഇത് ബാധിക്കുന്നു
ലൈബ്രറി തിരയുന്നു -l അതിനെ പിന്തുടരുന്ന ഓപ്ഷനുകൾ.
- ബി ഗ്രൂപ്പ്
ഡൈനാമിക്സിലെ "DT_FLAGS_1" എൻട്രിയിൽ "DF_1_GROUP" ഫ്ലാഗ് സജ്ജീകരിക്കുക
വിഭാഗം. റൺടൈം ലിങ്കർ ഇതിലെ ലുക്കപ്പുകൾ കൈകാര്യം ചെയ്യാൻ ഇത് കാരണമാകുന്നു
ഒബ്ജക്റ്റും അതിന്റെ ആശ്രിതത്വങ്ങളും ഗ്രൂപ്പിനുള്ളിൽ മാത്രം നടത്തണം.
--unresolved-symbols=report-all സൂചിപ്പിക്കുന്നത്. ഈ ഓപ്ഷൻ മാത്രമാണ്
പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന ELF പ്ലാറ്റ്ഫോമുകളിൽ അർത്ഥവത്തായതാണ്.
- ബിസ്റ്റാറ്റിക്
-dn
-പങ്കിടാത്തത്
- സ്റ്റാറ്റിക്
പങ്കിട്ട ലൈബ്രറികൾക്കെതിരെ ലിങ്ക് ചെയ്യരുത്. ഇത് അർത്ഥപൂർണ്ണമാണ്
പങ്കിട്ട ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്ന പ്ലാറ്റ്ഫോമുകൾ. വ്യത്യസ്തമായത്
ഈ ഓപ്ഷന്റെ വകഭേദങ്ങൾ വിവിധ സിസ്റ്റങ്ങളുമായുള്ള അനുയോജ്യതയ്ക്കുള്ളതാണ്.
കമാൻഡ് ലൈനിൽ നിങ്ങൾക്ക് ഈ ഓപ്ഷൻ ഒന്നിലധികം തവണ ഉപയോഗിക്കാം: അത്
ലൈബ്രറി തിരയലിനെ ബാധിക്കുന്നു -l അതിനെ പിന്തുടരുന്ന ഓപ്ഷനുകൾ. ഈ
ഓപ്ഷനും സൂചിപ്പിക്കുന്നു --unresolved-symbols=report-all. ഈ ഓപ്ഷൻ
ഉപയോഗിച്ച് ഉപയോഗിക്കാം - പങ്കിട്ടു. അങ്ങനെ ചെയ്യുന്നത് ഒരു പങ്കിട്ട ലൈബ്രറി എന്നാണ്
സൃഷ്ടിക്കപ്പെടുന്നു, പക്ഷേ ലൈബ്രറിയുടെ എല്ലാ ബാഹ്യ റഫറൻസുകളും
സ്റ്റാറ്റിക് ലൈബ്രറികളിൽ നിന്ന് എൻട്രികൾ വലിച്ചുകൊണ്ട് പരിഹരിക്കണം.
- പ്രതീകാത്മകം
ഒരു പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുമ്പോൾ, ആഗോള ചിഹ്നങ്ങളിലേക്ക് റഫറൻസുകൾ ബന്ധിപ്പിക്കുക
പങ്കിട്ട ലൈബ്രറിക്കുള്ളിലെ നിർവചനത്തിലേക്ക്, എന്തെങ്കിലും ഉണ്ടെങ്കിൽ. സാധാരണയായി, അത്
ഒരു പങ്കിട്ട ലൈബ്രറിയുമായി ലിങ്ക് ചെയ്തിരിക്കുന്ന ഒരു പ്രോഗ്രാമിന് സാധ്യമാണ്
പങ്കിട്ട ലൈബ്രറിയിലെ നിർവചനം അസാധുവാക്കുക. ഈ ഓപ്ഷൻ കഴിയും
കൂടെ ഉപയോഗിക്കും --കയറ്റുമതി-ഡൈനാമിക് ഓപ്ഷൻ, സൃഷ്ടിക്കുമ്പോൾ a
ആഗോളമായി റഫറൻസുകൾ ബന്ധിപ്പിക്കുന്നതിന് സ്വതന്ത്ര എക്സിക്യൂട്ടബിൾ സ്ഥാനം
എക്സിക്യൂട്ടബിളിനുള്ളിലെ നിർവചനത്തിലേക്കുള്ള ചിഹ്നങ്ങൾ. ഈ ഓപ്ഷൻ ആണ്
പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന ELF പ്ലാറ്റ്ഫോമുകളിൽ മാത്രം അർത്ഥവത്തായതും
സ്വതന്ത്ര എക്സിക്യൂട്ടബിളുകൾ സ്ഥാപിക്കുക.
- പ്രതീകാത്മക-പ്രവർത്തനങ്ങൾ
ഒരു പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുമ്പോൾ, ആഗോള പ്രവർത്തനത്തിലേക്ക് റഫറൻസുകൾ ബന്ധിപ്പിക്കുക
പങ്കിട്ട ലൈബ്രറിയിലെ നിർവചനത്തിലേക്കുള്ള ചിഹ്നങ്ങൾ, എന്തെങ്കിലും ഉണ്ടെങ്കിൽ. ഈ
എന്നതിനൊപ്പം ഓപ്ഷനും ഉപയോഗിക്കാം --കയറ്റുമതി-ഡൈനാമിക് ഓപ്ഷൻ, എപ്പോൾ
റഫറൻസുകൾ ബൈൻഡ് ചെയ്യുന്നതിനായി സ്വതന്ത്ര എക്സിക്യൂട്ടബിൾ സ്ഥാനം സൃഷ്ടിക്കുന്നു
എക്സിക്യൂട്ടബിളിനുള്ളിലെ നിർവചനത്തിലേക്കുള്ള ആഗോള പ്രവർത്തന ചിഹ്നങ്ങൾ.
പിന്തുണയ്ക്കുന്ന ELF പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ ഈ ഓപ്ഷൻ അർത്ഥവത്തായിട്ടുള്ളൂ
പങ്കിട്ട ലൈബ്രറികളും സ്വതന്ത്ര എക്സിക്യൂട്ടബിളുകൾ സ്ഥാനവും.
--dynamic-list=ഡൈനാമിക്-ലിസ്റ്റ്-ഫയൽ
ലിങ്കറിലേക്ക് ഡൈനാമിക് ലിസ്റ്റ് ഫയലിന്റെ പേര് വ്യക്തമാക്കുക. ഇതാണ്
ഒരു ലിസ്റ്റ് വ്യക്തമാക്കാൻ പങ്കിട്ട ലൈബ്രറികൾ സൃഷ്ടിക്കുമ്പോൾ സാധാരണയായി ഉപയോഗിക്കുന്നു
റഫറൻസുകളോട് ബന്ധിപ്പിക്കാൻ പാടില്ലാത്ത ആഗോള ചിഹ്നങ്ങൾ
പങ്കിട്ട ലൈബ്രറിക്കുള്ളിലെ നിർവചനം, അല്ലെങ്കിൽ ചലനാത്മകമായി സൃഷ്ടിക്കൽ
ചിഹ്നങ്ങളുടെ ഒരു ലിസ്റ്റ് വ്യക്തമാക്കാൻ എക്സിക്യൂട്ടബിളുകൾ ലിങ്ക് ചെയ്തു
എക്സിക്യൂട്ടബിളിലെ ചിഹ്ന പട്ടികയിലേക്ക് ചേർത്തു. ഈ ഓപ്ഷൻ മാത്രമാണ്
പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന ELF പ്ലാറ്റ്ഫോമുകളിൽ അർത്ഥവത്തായതാണ്.
ഡൈനാമിക് ലിസ്റ്റിന്റെ ഫോർമാറ്റ് പതിപ്പ് നോഡിന് സമാനമാണ്
സ്കോപ്പും നോഡിന്റെ പേരും ഇല്ലാതെ. കാണുക പതിപ്പ് കൂടുതൽ വിവരങ്ങൾക്ക്.
--ഡൈനാമിക്-ലിസ്റ്റ്-ഡാറ്റ
ഡൈനാമിക് ലിസ്റ്റിലേക്ക് എല്ലാ ആഗോള ഡാറ്റാ ചിഹ്നങ്ങളും ഉൾപ്പെടുത്തുക.
--dynamic-list-cpp-new
പുതിയതും ഇല്ലാതാക്കുന്നതുമായ C++ ഓപ്പറേറ്ററിനായുള്ള ബിൽട്ടിൻ ഡൈനാമിക് ലിസ്റ്റ് നൽകുക.
പങ്കിട്ട libstdc++ നിർമ്മിക്കുന്നതിന് ഇത് പ്രധാനമായും ഉപയോഗപ്രദമാണ്.
--dynamic-list-cpp-typeinfo
C++ റൺടൈം തരത്തിനായുള്ള ബിൽട്ടിൻ ഡൈനാമിക് ലിസ്റ്റ് നൽകുക
തിരിച്ചറിയൽ.
--വിഭാഗങ്ങൾ പരിശോധിക്കുക
--നോ-ചെക്ക്-സെക്ഷനുകൾ
ലിങ്കർ ചോദിക്കുന്നു അല്ല സെക്ഷൻ വിലാസങ്ങൾ പരിശോധിച്ചതിന് ശേഷം
എന്തെങ്കിലും ഓവർലാപ്പുകൾ ഉണ്ടോ എന്ന് നോക്കാൻ നിയോഗിച്ചു. സാധാരണയായി ലിങ്കർ
ഈ പരിശോധന നടത്തും, എന്തെങ്കിലും ഓവർലാപ്പുകൾ കണ്ടെത്തുകയാണെങ്കിൽ അത് ചെയ്യും
അനുയോജ്യമായ പിശക് സന്ദേശങ്ങൾ സൃഷ്ടിക്കുക. ലിങ്കർക്ക് ഇതിനെക്കുറിച്ച് അറിയാം, കൂടാതെ
ഓവർലേകളിലെ വിഭാഗങ്ങൾക്ക് അലവൻസുകൾ നൽകുന്നു. സ്ഥിരസ്ഥിതി
കമാൻഡ് ലൈൻ സ്വിച്ച് ഉപയോഗിച്ച് സ്വഭാവം പുനഃസ്ഥാപിക്കാൻ കഴിയും
--വിഭാഗങ്ങൾ പരിശോധിക്കുക. വിഭാഗം ഓവർലാപ്പ് സാധാരണയായി പരിശോധിക്കാറില്ല
മാറ്റിസ്ഥാപിക്കാവുന്ന ലിങ്കുകൾ. ഉപയോഗിച്ച് നിങ്ങൾക്ക് ആ സാഹചര്യത്തിൽ പരിശോധന നിർബന്ധമാക്കാം
The --വിഭാഗങ്ങൾ പരിശോധിക്കുക ഓപ്ഷൻ.
--copy-dt-needed-entries
--no-copy-dt-needed-entries
പരാമർശിച്ചിരിക്കുന്ന ഡൈനാമിക് ലൈബ്രറികളുടെ ചികിത്സയെ ഈ ഓപ്ഷൻ ബാധിക്കുന്നു
DT_NEEDED ടാഗുകൾ വഴി ഉള്ളിൽ ELF ഡൈനാമിക് ലൈബ്രറികൾ സൂചിപ്പിച്ചിരിക്കുന്നു
കമാൻഡ് ലൈൻ. സാധാരണയായി ലിങ്കർ ഇതിലേക്ക് ഒരു DT_NEEDED ടാഗ് ചേർക്കില്ല
ഒരു DT_NEEDED ടാഗിൽ സൂചിപ്പിച്ചിരിക്കുന്ന ഓരോ ലൈബ്രറിയുടെയും ഔട്ട്പുട്ട് ബൈനറി
ഇൻപുട്ട് ഡൈനാമിക് ലൈബ്രറി. കൂടെ --copy-dt-needed-entries ന് വ്യക്തമാക്കിയിരിക്കുന്നു
കമാൻഡ് ലൈൻ എന്നിരുന്നാലും അതിനെ പിന്തുടരുന്ന ഏതൊരു ഡൈനാമിക് ലൈബ്രറികളും
അവരുടെ DT_NEEDED എൻട്രികൾ ചേർക്കുക. ഡിഫോൾട്ട് സ്വഭാവം ആകാം
ഉപയോഗിച്ച് പുനഃസ്ഥാപിച്ചു --no-copy-dt-needed-entries.
ചിഹ്നങ്ങളുടെ റെസല്യൂഷനിലും ഈ ഓപ്ഷൻ സ്വാധീനം ചെലുത്തുന്നു
ഡൈനാമിക് ലൈബ്രറികൾ. കൂടെ --copy-dt-needed-entries ഡൈനാമിക് ലൈബ്രറികൾ
കമാൻഡ് ലൈനിൽ സൂചിപ്പിച്ചിരിക്കുന്നവ ആവർത്തിച്ച് തിരയപ്പെടും,
മറ്റ് ലൈബ്രറികളിലേക്ക് അവരുടെ DT_NEEDED ടാഗുകൾ പിന്തുടരുന്നു
ഔട്ട്പുട്ട് ബൈനറിക്ക് ആവശ്യമായ ചിഹ്നങ്ങൾ പരിഹരിക്കുക. സ്ഥിരസ്ഥിതിയോടെ
എന്നിരുന്നാലും, അതിനെ പിന്തുടരുന്ന ഡൈനാമിക് ലൈബ്രറികളുടെ തിരയൽ ക്രമീകരിക്കുന്നു
ഡൈനാമിക് ലൈബ്രറിയിൽ തന്നെ നിർത്തും. DT_NEEDED ലിങ്കുകളൊന്നും ഉണ്ടാകില്ല
ചിഹ്നങ്ങൾ പരിഹരിക്കാൻ സഞ്ചരിക്കണം.
--ക്രെഫ്
ഒരു ക്രോസ് റഫറൻസ് ടേബിൾ ഔട്ട്പുട്ട് ചെയ്യുക. ഒരു ലിങ്കർ മാപ്പ് ഫയൽ ആണെങ്കിൽ
സൃഷ്ടിച്ചത്, ക്രോസ് റഫറൻസ് ടേബിൾ മാപ്പ് ഫയലിലേക്ക് പ്രിന്റ് ചെയ്യുന്നു.
അല്ലെങ്കിൽ, അത് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ പ്രിന്റ് ചെയ്യുന്നു.
പട്ടികയുടെ ഫോർമാറ്റ് മനഃപൂർവ്വം ലളിതമാണ്, അങ്ങനെയായിരിക്കാം
ആവശ്യമെങ്കിൽ ഒരു സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് എളുപ്പത്തിൽ പ്രോസസ്സ് ചെയ്യാം. ചിഹ്നങ്ങൾ അച്ചടിച്ചിരിക്കുന്നു
പുറത്ത്, പേര് പ്രകാരം അടുക്കി. ഓരോ ചിഹ്നത്തിനും, ഫയൽ പേരുകളുടെ ഒരു ലിസ്റ്റ്
നൽകിയത്. ചിഹ്നം നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ, ലിസ്റ്റുചെയ്തിരിക്കുന്ന ആദ്യത്തെ ഫയൽ ഇതാണ്
നിർവചനത്തിന്റെ സ്ഥാനം. ചിഹ്നം പൊതുവായി നിർവചിച്ചാൽ
മൂല്യം തുടർന്ന് ഇത് സംഭവിക്കുന്ന എല്ലാ ഫയലുകളും അടുത്തതായി ദൃശ്യമാകും. ഒടുവിൽ ഏതെങ്കിലും
ചിഹ്നത്തെ പരാമർശിക്കുന്ന ഫയലുകൾ പട്ടികപ്പെടുത്തിയിരിക്കുന്നു.
--no-define-common
പൊതുവായ ചിഹ്നങ്ങളിലേക്കുള്ള വിലാസങ്ങളുടെ അസൈൻമെന്റ് ഈ ഓപ്ഷൻ തടയുന്നു.
"INHIBIT_COMMON_ALLOCATION" എന്ന സ്ക്രിപ്റ്റ് കമാൻഡിന് സമാനമായ ഫലമുണ്ട്.
ദി --no-define-common തീരുമാനം വേർപെടുത്താൻ ഓപ്ഷൻ അനുവദിക്കുന്നു
ഔട്ട്പുട്ടിന്റെ തിരഞ്ഞെടുപ്പിൽ നിന്ന് പൊതുവായ ചിഹ്നങ്ങൾക്ക് വിലാസങ്ങൾ നൽകുക
ഫയൽ തരം; അല്ലെങ്കിൽ ഒരു നോൺ-റെലോക്കേറ്റബിൾ ഔട്ട്പുട്ട് ടൈപ്പ് ഫോഴ്സ് അസൈൻ ചെയ്യുന്നു
പൊതു ചിഹ്നങ്ങളിലേക്കുള്ള വിലാസങ്ങൾ. ഉപയോഗിക്കുന്നത് --no-define-common അനുവദിക്കുന്നു
ഒരു പങ്കിട്ട ലൈബ്രറിയിൽ നിന്ന് പരാമർശിക്കപ്പെടുന്ന പൊതുവായ ചിഹ്നങ്ങൾ
പ്രധാന പ്രോഗ്രാമിൽ മാത്രം വിലാസങ്ങൾ നൽകിയിട്ടുണ്ട്. ഇത് ഇല്ലാതാക്കുന്നു
പങ്കിട്ട ലൈബ്രറിയിൽ ഉപയോഗിക്കാത്ത ഡ്യൂപ്ലിക്കേറ്റ് ഇടം, കൂടാതെ എന്തെങ്കിലും തടയുന്നു
തെറ്റായ ഡ്യൂപ്ലിക്കേറ്റ് ഉള്ളപ്പോൾ അത് പരിഹരിക്കുന്നതിൽ ആശയക്കുഴപ്പം ഉണ്ടാകാം
റൺടൈമിനായി പ്രത്യേക തിരയൽ പാതകളുള്ള നിരവധി ഡൈനാമിക് മൊഡ്യൂളുകളാണ്
ചിഹ്ന പ്രമേയം.
--defsym=ചിഹ്നം=പദപ്രയോഗം
ഔട്ട്പുട്ട് ഫയലിൽ ഒരു ആഗോള ചിഹ്നം സൃഷ്ടിക്കുക, അതിൽ കേവലം അടങ്ങിയിരിക്കുന്നു
നൽകിയ വിലാസം പദപ്രയോഗം. നിങ്ങൾക്ക് ഈ ഓപ്ഷൻ എത്ര തവണ ഉപയോഗിക്കാം
കമാൻഡ് ലൈനിൽ ഒന്നിലധികം ചിഹ്നങ്ങൾ നിർവചിക്കുന്നതിന് ആവശ്യമായത്. എ
ഗണിതത്തിന്റെ പരിമിതമായ രൂപത്തെ പിന്തുണയ്ക്കുന്നു പദപ്രയോഗം ഇതിൽ
സന്ദർഭം: നിങ്ങൾക്ക് ഒരു ഹെക്സാഡെസിമൽ സ്ഥിരാങ്കം അല്ലെങ്കിൽ ഒരു പേര് നൽകാം
നിലവിലുള്ള ചിഹ്നം, അല്ലെങ്കിൽ ഹെക്സാഡെസിമൽ ചേർക്കുന്നതിനോ കുറയ്ക്കുന്നതിനോ "+", "-" എന്നിവ ഉപയോഗിക്കുക
സ്ഥിരാങ്കങ്ങൾ അല്ലെങ്കിൽ ചിഹ്നങ്ങൾ. നിങ്ങൾക്ക് കൂടുതൽ വിശദമായ പദപ്രയോഗങ്ങൾ ആവശ്യമുണ്ടെങ്കിൽ,
ഒരു സ്ക്രിപ്റ്റിൽ നിന്ന് ലിങ്കർ കമാൻഡ് ഭാഷ ഉപയോഗിക്കുന്നത് പരിഗണിക്കുക. കുറിപ്പ്:
ഇടയിൽ വെളുത്ത ഇടം ഉണ്ടാകരുത് ചിഹ്നം, തുല്യ ചിഹ്നം
("="), ഒപ്പം പദപ്രയോഗം.
--demangle[=ശൈലി]
--നോ-ഡിമാംഗിൾ
ഈ ഓപ്ഷനുകൾ തെറ്റായി ചിഹ്ന നാമങ്ങൾ ഡീമാംഗിൾ ചെയ്യണോ എന്ന് നിയന്ത്രിക്കുന്നു
സന്ദേശങ്ങളും മറ്റ് ഔട്ട്പുട്ടുകളും. ലിങ്കറോട് ഡീമാംഗിൾ ചെയ്യാൻ പറഞ്ഞാൽ, അത്
ചിഹ്ന നാമങ്ങൾ വായിക്കാനാകുന്ന രീതിയിൽ അവതരിപ്പിക്കാൻ ശ്രമിക്കുന്നു: അത് സ്ട്രിപ്പുകൾ
ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റിലാണ് അവ ഉപയോഗിക്കുന്നതെങ്കിൽ ലീഡിംഗ് അടിവരയിടുന്നു, ഒപ്പം
C++ മംഗൾഡ് ചിഹ്ന നാമങ്ങളെ ഉപയോക്താക്കൾക്ക് വായിക്കാനാകുന്ന പേരുകളാക്കി മാറ്റുന്നു.
വ്യത്യസ്ത കംപൈലറുകൾക്ക് വ്യത്യസ്ത മാംഗ്ലിംഗ് ശൈലികളുണ്ട്. ഓപ്ഷണൽ
ഉചിതമായത് തിരഞ്ഞെടുക്കാൻ demanngling ശൈലി ആർഗ്യുമെന്റ് ഉപയോഗിക്കാം
നിങ്ങളുടെ കംപൈലറിനായുള്ള ഡീമാംഗ്ലിംഗ് ശൈലി. ലിങ്കർ വിഘടിപ്പിക്കും
എൻവയോൺമെന്റ് വേരിയബിൾ അല്ലാത്തപക്ഷം ഡിഫോൾട്ട് COLLECT_NO_DEMANGLE സജ്ജീകരിച്ചിരിക്കുന്നു.
ഡിഫോൾട്ട് അസാധുവാക്കാൻ ഈ ഓപ്ഷനുകൾ ഉപയോഗിച്ചേക്കാം.
-Iഫയല്
--dynamic-linker=ഫയല്
ഡൈനാമിക് ലിങ്കറിന്റെ പേര് സജ്ജീകരിക്കുക. എപ്പോഴാണ് ഇത് അർത്ഥവത്തായത്
ചലനാത്മകമായി ലിങ്ക് ചെയ്ത ELF എക്സിക്യൂട്ടബിളുകൾ സൃഷ്ടിക്കുന്നു. ഡിഫോൾട്ട് ഡൈനാമിക്
ലിങ്കർ സാധാരണയായി ശരിയാണ്; നിങ്ങൾ എന്താണെന്ന് അറിയാതെ ഇത് ഉപയോഗിക്കരുത്
ചെയ്യുന്നു.
--നോ-ഡൈനാമിക്-ലിങ്കർ
ഒരു എക്സിക്യൂട്ടബിൾ ഫയൽ നിർമ്മിക്കുമ്പോൾ, ഒരു ഡൈനാമിക്കിനായുള്ള അഭ്യർത്ഥന ഒഴിവാക്കുക
ലോഡ്-ടൈമിൽ ഉപയോഗിക്കേണ്ട ലിങ്കർ. ഇത് ELF-ന് മാത്രം അർത്ഥമുള്ളതാണ്
ഡൈനാമിക് റീലോക്കേഷനുകൾ അടങ്ങിയിരിക്കുന്ന എക്സിക്യൂട്ടബിളുകൾ, സാധാരണയായി ആവശ്യമുള്ളവ
ഈ സ്ഥലംമാറ്റങ്ങൾ പ്രോസസ്സ് ചെയ്യാൻ പ്രാപ്തമായ എൻട്രി പോയിന്റ് കോഡ്.
--മാരകമായ മുന്നറിയിപ്പ്
--മാരകമായ മുന്നറിയിപ്പുകൾ ഇല്ല
എല്ലാ മുന്നറിയിപ്പുകളും പിശകുകളായി കണക്കാക്കുക. ഡിഫോൾട്ട് സ്വഭാവം ആകാം
ഓപ്ഷൻ ഉപയോഗിച്ച് പുനഃസ്ഥാപിച്ചു --മാരകമായ മുന്നറിയിപ്പുകൾ ഇല്ല.
--force-exe-suffix
ഒരു ഔട്ട്പുട്ട് ഫയലിന് .exe സഫിക്സ് ഉണ്ടെന്ന് ഉറപ്പാക്കുക.
വിജയകരമായി നിർമ്മിച്ച പൂർണ്ണമായി ലിങ്ക് ചെയ്ത ഔട്ട്പുട്ട് ഫയലിന് എ ഇല്ലെങ്കിൽ
".exe" അല്ലെങ്കിൽ ".dll" പ്രത്യയം, ഈ ഓപ്ഷൻ ലിങ്കറിനെ പകർത്താൻ പ്രേരിപ്പിക്കുന്നു
".exe" സഫിക്സുള്ള അതേ പേരിലുള്ള ഒന്നിലേക്ക് ഔട്ട്പുട്ട് ഫയൽ. ഈ
a-യിൽ മാറ്റം വരുത്താത്ത Unix മേക്ക് ഫയലുകൾ ഉപയോഗിക്കുമ്പോൾ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്
മൈക്രോസോഫ്റ്റ് വിൻഡോസ് ഹോസ്റ്റ്, വിൻഡോസിന്റെ ചില പതിപ്പുകൾ പ്രവർത്തിപ്പിക്കാത്തതിനാൽ
ചിത്രം ".exe" സഫിക്സിൽ അവസാനിക്കുന്നില്ലെങ്കിൽ.
--ജിസി-വിഭാഗങ്ങൾ
--no-gc-വിഭാഗങ്ങൾ
ഉപയോഗിക്കാത്ത ഇൻപുട്ട് വിഭാഗങ്ങളുടെ മാലിന്യ ശേഖരണം പ്രവർത്തനക്ഷമമാക്കുക. അത് അവഗണിക്കപ്പെടുന്നു
ഈ ഓപ്ഷനെ പിന്തുണയ്ക്കാത്ത ലക്ഷ്യങ്ങളിൽ. സ്ഥിര സ്വഭാവം
(ഈ മാലിന്യ ശേഖരണം നടത്താത്തത്) വഴി പുനഃസ്ഥാപിക്കാൻ കഴിയും
വ്യക്തമാക്കുന്നു --no-gc-വിഭാഗങ്ങൾ കമാൻഡ് ലൈനിൽ. മാലിന്യം എന്നത് ശ്രദ്ധിക്കുക
COFF, PE ഫോർമാറ്റ് ടാർഗെറ്റുകൾക്കായുള്ള ശേഖരം പിന്തുണയ്ക്കുന്നു, എന്നാൽ
നടപ്പിലാക്കൽ നിലവിൽ പരീക്ഷണാത്മകമായി കണക്കാക്കപ്പെടുന്നു.
--ജിസി-വിഭാഗങ്ങൾ പരിശോധിച്ചുകൊണ്ട് ഏതൊക്കെ ഇൻപുട്ട് വിഭാഗങ്ങൾ ഉപയോഗിക്കണമെന്ന് തീരുമാനിക്കുന്നു
ചിഹ്നങ്ങളും സ്ഥലംമാറ്റങ്ങളും. എൻട്രി ചിഹ്നം അടങ്ങുന്ന വിഭാഗം
കമാൻഡ് ലൈനിൽ നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ അടങ്ങുന്ന എല്ലാ വിഭാഗങ്ങളും
പരാമർശിച്ച ചിഹ്നങ്ങൾ അടങ്ങിയ വിഭാഗങ്ങൾ പോലെ സൂക്ഷിക്കും
ചലനാത്മക വസ്തുക്കൾ. പങ്കിട്ട ലൈബ്രറികൾ നിർമ്മിക്കുമ്പോൾ ശ്രദ്ധിക്കുക
കാണാവുന്ന ഏതെങ്കിലും ചിഹ്നം പരാമർശിച്ചിട്ടുണ്ടെന്ന് ലിങ്കർ അനുമാനിക്കണം. ഒരിക്കല്
വിഭാഗങ്ങളുടെ ഈ പ്രാരംഭ സെറ്റ് നിർണ്ണയിക്കപ്പെട്ടിരിക്കുന്നു, ലിങ്കർ
അവരുടെ റഫറൻസ് ഏത് വിഭാഗവും ഉപയോഗിച്ചതായി ആവർത്തിച്ച് അടയാളപ്പെടുത്തുന്നു
സ്ഥലംമാറ്റങ്ങൾ. കാണുക --പ്രവേശനം ഒപ്പം --നിർവചിക്കപ്പെട്ടിട്ടില്ല.
ഒരു ഭാഗിക ലിങ്ക് ചെയ്യുമ്പോൾ ഈ ഓപ്ഷൻ സജ്ജമാക്കാൻ കഴിയും (ഇത് ഉപയോഗിച്ച് പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു
ഓപ്ഷൻ -r). ഈ സാഹചര്യത്തിൽ സൂക്ഷിച്ചിരിക്കുന്ന ചിഹ്നങ്ങളുടെ റൂട്ട് ആയിരിക്കണം
ഒന്നുകിൽ വ്യക്തമായി വ്യക്തമാക്കിയിട്ടുണ്ട് --പ്രവേശനം or --നിർവചിക്കപ്പെട്ടിട്ടില്ല ഓപ്ഷൻ അല്ലെങ്കിൽ
ലിങ്കർ സ്ക്രിപ്റ്റിലെ ഒരു "ENTRY" കമാൻഡ് വഴി.
--print-gc-sections
--no-print-gc-sections
മാലിന്യ ശേഖരണം വഴി നീക്കം ചെയ്ത എല്ലാ വിഭാഗങ്ങളും പട്ടികപ്പെടുത്തുക. ലിസ്റ്റിംഗ് ആണ്
stderr-ൽ അച്ചടിച്ചു. മാലിന്യമാണെങ്കിൽ മാത്രമേ ഈ ഓപ്ഷൻ ഫലപ്രദമാകൂ
വഴി ശേഖരണം പ്രവർത്തനക്ഷമമാക്കി --ജിസി-വിഭാഗങ്ങൾ) ഓപ്ഷൻ. ദി
ഡിഫോൾട്ട് സ്വഭാവം (നീക്കം ചെയ്ത വിഭാഗങ്ങൾ ലിസ്റ്റ് ചെയ്യാത്തത്)
വ്യക്തമാക്കുന്നതിലൂടെ പുനഃസ്ഥാപിക്കാൻ കഴിയും --no-print-gc-sections കമാൻഡിൽ
ലൈൻ.
--print-output-format
ഡിഫോൾട്ട് ഔട്ട്പുട്ട് ഫോർമാറ്റിന്റെ പേര് പ്രിന്റ് ചെയ്യുക (ഒരുപക്ഷേ സ്വാധീനിച്ചിരിക്കാം
മറ്റ് കമാൻഡ്-ലൈൻ ഓപ്ഷനുകൾ). ദൃശ്യമാകുന്ന സ്ട്രിംഗ് ഇതാണ്
ഒരു "OUTPUT_FORMAT" ലിങ്കർ സ്ക്രിപ്റ്റ് കമാൻഡിൽ.
--പ്രിന്റ്-മെമ്മറി-ഉപയോഗം
ഉപയോഗിച്ച വലുപ്പം, മൊത്തം വലുപ്പം, സൃഷ്ടിച്ച മെമ്മറി റീജിയണുകളുടെ ഉപയോഗിച്ച വലുപ്പം എന്നിവ പ്രിന്റ് ചെയ്യുക
കൂടെ MEMORY കമാൻഡ്. എംബഡഡ് ടാർഗെറ്റുകളിൽ ഇത് ഉപയോഗപ്രദമാണ്
സൌജന്യ മെമ്മറിയുടെ അളവ് പെട്ടെന്ന് കാണൂ. യുടെ ഫോർമാറ്റ്
ഔട്ട്പുട്ടിൽ ഓരോ മേഖലയിലും ഒരു തലക്കെട്ടും ഒരു വരിയും ഉണ്ട്. അത് രണ്ടും മനുഷ്യനാണ്
ഉപകരണങ്ങൾ ഉപയോഗിച്ച് വായിക്കാവുന്നതും എളുപ്പത്തിൽ പാഴ്സ് ചെയ്യാവുന്നതുമാണ്. ഒരു ഉദാഹരണം ഇതാ
ഔട്ട്പുട്ട്:
മെമ്മറി മേഖല ഉപയോഗിച്ച വലുപ്പം പ്രദേശം വലുപ്പം% വയസ്സ് ഉപയോഗിച്ചു
റോം: 256 KB 1 MB 25.00%
റാം: 32 ബി 2 ജിബി 0.00%
--സഹായിക്കൂ
സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ കമാൻഡ്-ലൈൻ ഓപ്ഷനുകളുടെ ഒരു സംഗ്രഹം പ്രിന്റ് ചെയ്യുക
പുറത്തുകടക്കുക.
--ലക്ഷ്യം-സഹായം
സ്റ്റാൻഡേർഡിലെ എല്ലാ ടാർഗെറ്റ് നിർദ്ദിഷ്ട ഓപ്ഷനുകളുടെയും ഒരു സംഗ്രഹം പ്രിന്റ് ചെയ്യുക
ഔട്ട്പുട്ട്, എക്സിറ്റ്.
-മാപ്പ്=മാപ്പ് ഫയൽ
ഫയലിലേക്ക് ഒരു ലിങ്ക് മാപ്പ് പ്രിന്റ് ചെയ്യുക മാപ്പ് ഫയൽ. യുടെ വിവരണം കാണുക
-M ഓപ്ഷൻ, മുകളിൽ.
--നോ-കീപ്പ്-മെമ്മറി
ld സാധാരണയായി കാഷെ ചെയ്യുന്നതിലൂടെ മെമ്മറി ഉപയോഗത്തേക്കാൾ വേഗത ഒപ്റ്റിമൈസ് ചെയ്യുന്നു
മെമ്മറിയിലുള്ള ഇൻപുട്ട് ഫയലുകളുടെ ചിഹ്ന പട്ടികകൾ. ഈ ഓപ്ഷൻ പറയുന്നു ld ലേക്ക്
പകരം, ചിഹ്ന പട്ടികകൾ വീണ്ടും വായിച്ചുകൊണ്ട് മെമ്മറി ഉപയോഗത്തിനായി ഒപ്റ്റിമൈസ് ചെയ്യുക
ആവശ്യം പോലേ. എങ്കിൽ ഇത് ആവശ്യമായി വന്നേക്കാം ld മെമ്മറി സ്പേസ് തീർന്നു
ഒരു വലിയ എക്സിക്യൂട്ടബിൾ ലിങ്ക് ചെയ്യുമ്പോൾ.
--ഇല്ല-നിർവചിക്കപ്പെട്ടിട്ടില്ല
-z defs
സാധാരണ ഒബ്ജക്റ്റ് ഫയലുകളിൽ നിന്ന് പരിഹരിക്കപ്പെടാത്ത ചിഹ്ന റഫറൻസുകൾ റിപ്പോർട്ട് ചെയ്യുക.
ലിങ്കർ ഒരു നോൺ-സിംബോളിക് ഷെയർ സൃഷ്ടിക്കുന്നുണ്ടെങ്കിൽ പോലും ഇത് ചെയ്യപ്പെടും
പുസ്തകശാല. സ്വിച്ച് --[no-]allow-shlib-undefined നിയന്ത്രിക്കുന്നു
പങ്കിട്ടതിൽ കണ്ടെത്തിയ പരിഹരിക്കപ്പെടാത്ത റഫറൻസുകൾ റിപ്പോർട്ടുചെയ്യുന്നതിനുള്ള പെരുമാറ്റം
ലൈബ്രറികൾ ബന്ധിപ്പിച്ചിരിക്കുന്നു.
--അനുവദിക്കുക-ഒന്നിലധികം-നിർവചനം
-z muldefs
സാധാരണയായി ഒരു ചിഹ്നം ഒന്നിലധികം തവണ നിർവചിക്കുമ്പോൾ, ലിങ്കർ ചെയ്യും
മാരകമായ ഒരു പിശക് റിപ്പോർട്ട് ചെയ്യുക. ഈ ഓപ്ഷനുകൾ ഒന്നിലധികം നിർവചനങ്ങൾ അനുവദിക്കുന്നു
ആദ്യ നിർവചനം ഉപയോഗിക്കും.
--allow-shlib-undefined
--no-allow-shlib-undefined
പങ്കിട്ട ലൈബ്രറികളിൽ നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ അനുവദിക്കുകയോ അനുവദിക്കാതിരിക്കുകയോ ചെയ്യുന്നു. ഈ
സ്വിച്ച് സമാനമാണ് --ഇല്ല-നിർവചിക്കപ്പെട്ടിട്ടില്ല അത് നിർണ്ണയിക്കുന്നു എന്നതൊഴിച്ചാൽ
നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ പങ്കിട്ട ലൈബ്രറിയിലായിരിക്കുമ്പോൾ പെരുമാറ്റം
ഒരു സാധാരണ ഒബ്ജക്റ്റ് ഫയലിനേക്കാൾ. അത് എത്രത്തോളം നിർവചിക്കപ്പെട്ടില്ല എന്നതിനെ ബാധിക്കില്ല
സാധാരണ ഒബ്ജക്റ്റ് ഫയലുകളിലെ ചിഹ്നങ്ങൾ കൈകാര്യം ചെയ്യുന്നു.
നിർവചിക്കാത്ത ഏതെങ്കിലും ചിഹ്നങ്ങൾക്കായി പിശകുകൾ റിപ്പോർട്ട് ചെയ്യുക എന്നതാണ് സ്ഥിര സ്വഭാവം
ലിങ്കർ ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ പങ്കിട്ട ലൈബ്രറികളിൽ പരാമർശിച്ചിരിക്കുന്നു
ഒരു എക്സിക്യൂട്ടബിൾ സൃഷ്ടിക്കുക, എന്നാൽ ലിങ്കർ ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ അവരെ അനുവദിക്കുക
ഒരു പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കാൻ.
പങ്കിട്ടതിൽ നിർവചിക്കാത്ത ചിഹ്ന റഫറൻസുകൾ അനുവദിക്കുന്നതിനുള്ള കാരണങ്ങൾ
ലിങ്ക് സമയത്ത് വ്യക്തമാക്കിയ ലൈബ്രറികൾ ഇവയാണ്:
· ലിങ്ക് സമയത്ത് വ്യക്തമാക്കിയ ഒരു പങ്കിട്ട ലൈബ്രറി സമാനമാകണമെന്നില്ല
ലോഡ് സമയത്ത് ലഭ്യമായ ഒന്ന്, അതിനാൽ ചിഹ്നം ഉണ്ടാകാം
യഥാർത്ഥത്തിൽ ലോഡ് സമയത്ത് പരിഹരിക്കാവുന്നതാണ്.
ചില ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ ഉണ്ട്, ഉദാ. BeOS, HPPA എന്നിവ
പങ്കിട്ട ലൈബ്രറികളിലെ നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ സാധാരണമാണ്.
BeOS കേർണൽ ഉദാഹരണത്തിന് പാച്ചുകൾ ലോഡിൽ പങ്കിട്ട ലൈബ്രറികൾ
ഏത് ഫംഗ്ഷനാണ് ഏറ്റവും അനുയോജ്യമെന്ന് തിരഞ്ഞെടുക്കാനുള്ള സമയം
നിലവിലെ വാസ്തുവിദ്യ. ഇത് ഉപയോഗിക്കുന്നു, ഉദാഹരണത്തിന്, to
അനുയോജ്യമായ ഒരു മെംസെറ്റ് ഫംഗ്ഷൻ ചലനാത്മകമായി തിരഞ്ഞെടുക്കുക.
--no-undefined-version
സാധാരണയായി ഒരു ചിഹ്നത്തിന് നിർവചിക്കാത്ത പതിപ്പ് ഉണ്ടെങ്കിൽ, ലിങ്കർ ചെയ്യും
അതിനെ അവഗണിക്കുക. ഈ ഓപ്ഷൻ നിർവചിക്കാത്ത പതിപ്പുള്ള ചിഹ്നങ്ങളെ അനുവദിക്കുന്നില്ല
പകരം ഒരു മാരകമായ പിശക് പുറപ്പെടുവിക്കും.
--default-symver
ഇതിനായി ഒരു ഡിഫോൾട്ട് ചിഹ്ന പതിപ്പ് (സോനേം) സൃഷ്ടിച്ച് ഉപയോഗിക്കുക
മാറ്റാത്ത കയറ്റുമതി ചിഹ്നങ്ങൾ.
--default-imported-symver
ഇതിനായി ഒരു ഡിഫോൾട്ട് ചിഹ്ന പതിപ്പ് (സോനേം) സൃഷ്ടിച്ച് ഉപയോഗിക്കുക
മാറ്റാത്ത ഇറക്കുമതി ചെയ്ത ചിഹ്നങ്ങൾ.
--ഇല്ല-മുന്നറിയിപ്പ്-പൊരുത്തക്കേട്
സാധാരണയായി ld നിങ്ങൾ ഇൻപുട്ട് ഒരുമിച്ച് ലിങ്ക് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ ഒരു പിശക് നൽകും
ചില കാരണങ്ങളാൽ പൊരുത്തമില്ലാത്ത ഫയലുകൾ, ഒരുപക്ഷേ അവ കാരണം
വ്യത്യസ്ത പ്രോസസറുകൾക്കായി അല്ലെങ്കിൽ വ്യത്യസ്തങ്ങൾക്കായി സമാഹരിച്ചിരിക്കുന്നു
അന്തസ്സത്തകൾ. ഈ ഓപ്ഷൻ പറയുന്നു ld അത് നിശബ്ദമായി അനുവദിക്കണമെന്ന്
അത്തരം സാധ്യമായ പിശകുകൾ. ഈ ഓപ്ഷൻ ശ്രദ്ധയോടെ മാത്രമേ ഉപയോഗിക്കാവൂ,
നിങ്ങൾ അത് ഉറപ്പാക്കുന്ന ചില പ്രത്യേക നടപടികൾ കൈക്കൊണ്ട സന്ദർഭങ്ങളിൽ
ലിങ്കർ പിശകുകൾ അനുചിതമാണ്.
--മുന്നറിയിപ്പ്-തിരയൽ-പൊരുത്തമില്ല
സാധാരണയായി ld പൊരുത്തപ്പെടാത്ത ലൈബ്രറി കണ്ടെത്തിയാൽ മുന്നറിയിപ്പ് നൽകും
ഒരു ലൈബ്രറി തിരയുന്നതിനിടയിൽ. ഈ ഓപ്ഷൻ മുന്നറിയിപ്പ് നിശബ്ദമാക്കുന്നു.
--no- whole-archive
ന്റെ പ്രഭാവം ഓഫാക്കുക --മുഴുവൻ ആർക്കൈവ് തുടർന്നുള്ള ഓപ്ഷൻ
ആർക്കൈവ് ഫയലുകൾ.
--noinhibit-exec
എക്സിക്യൂട്ടബിൾ ഔട്ട്പുട്ട് ഫയൽ ഉപയോഗിക്കാനാകുമ്പോഴെല്ലാം അത് നിലനിർത്തുക.
സാധാരണയായി, ലിങ്കർ ഒരു ഔട്ട്പുട്ട് ഫയൽ ഉണ്ടാക്കില്ല
ലിങ്ക് പ്രക്രിയയിൽ പിശകുകൾ നേരിടുന്നു; അത് എഴുതാതെ പുറത്തുകടക്കുന്നു
ഒരു ഔട്ട്പുട്ട് ഫയൽ എന്തെങ്കിലും പിശക് നൽകുമ്പോൾ.
-nostdlib
കമാൻഡിൽ വ്യക്തമായി വ്യക്തമാക്കിയ ലൈബ്രറി ഡയറക്ടറികൾ മാത്രം തിരയുക
ലൈൻ. ലിങ്കർ സ്ക്രിപ്റ്റുകളിൽ വ്യക്തമാക്കിയ ലൈബ്രറി ഡയറക്ടറികൾ (ഉൾപ്പെടെ
കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയ ലിങ്കർ സ്ക്രിപ്റ്റുകൾ) അവഗണിക്കപ്പെടുന്നു.
--oformat=ഔട്ട്പുട്ട് ഫോർമാറ്റ്
ld ഒന്നിലധികം തരം ഒബ്ജക്റ്റ് ഫയലുകളെ പിന്തുണയ്ക്കാൻ കോൺഫിഗർ ചെയ്തേക്കാം.
നിങ്ങളുടെ എങ്കിൽ ld ഈ രീതിയിൽ ക്രമീകരിച്ചിരിക്കുന്നു, നിങ്ങൾക്ക് ഉപയോഗിക്കാം --ഓഫോർമാറ്റ് ഓപ്ഷൻ
ഔട്ട്പുട്ട് ഒബ്ജക്റ്റ് ഫയലിനുള്ള ബൈനറി ഫോർമാറ്റ് വ്യക്തമാക്കാൻ. എപ്പോൾ പോലും
ld ഇതര ഒബ്ജക്റ്റ് ഫോർമാറ്റുകളെ പിന്തുണയ്ക്കുന്നതിനായി കോൺഫിഗർ ചെയ്തിരിക്കുന്നു, നിങ്ങൾ അങ്ങനെ ചെയ്യില്ല
സാധാരണയായി ഇത് വ്യക്തമാക്കേണ്ടതുണ്ട് ld ഉൽപ്പാദിപ്പിക്കുന്നതിന് കോൺഫിഗർ ചെയ്യണം
ഒരു ഡിഫോൾട്ട് ഔട്ട്പുട്ട് ഫോർമാറ്റ് എന്ന നിലയിൽ ഓരോ മെഷീനിലെയും ഏറ്റവും സാധാരണമായ ഫോർമാറ്റ്.
ഔട്ട്പുട്ട് ഫോർമാറ്റ് ഒരു ടെക്സ്റ്റ് സ്ട്രിംഗ് ആണ്, ഒരു പ്രത്യേക ഫോർമാറ്റിന്റെ പേര്
BFD ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്നു. (ലഭ്യമായ ബൈനറി നിങ്ങൾക്ക് ലിസ്റ്റ് ചെയ്യാം
കൂടെ ഫോർമാറ്റുകൾ objdump -i.) "OUTPUT_FORMAT" എന്ന സ്ക്രിപ്റ്റ് കമാൻഡിന് കഴിയും
ഔട്ട്പുട്ട് ഫോർമാറ്റും വ്യക്തമാക്കുക, എന്നാൽ ഈ ഓപ്ഷൻ അതിനെ മറികടക്കുന്നു.
-പൈ
--pic-എക്സിക്യൂട്ടബിൾ
സ്വതന്ത്ര എക്സിക്യൂട്ടബിൾ സ്ഥാനം സൃഷ്ടിക്കുക. ഇത് നിലവിൽ മാത്രമാണ്
ELF പ്ലാറ്റ്ഫോമുകളിൽ പിന്തുണയ്ക്കുന്നു. പൊസിഷൻ ഇൻഡിപെൻഡന്റ് എക്സിക്യൂട്ടബിളുകളാണ്
പങ്കിട്ട ലൈബ്രറികൾക്ക് സമാനമായി അവ മാറ്റിസ്ഥാപിക്കുന്നത്
OS അവർക്കായി തിരഞ്ഞെടുക്കുന്ന വെർച്വൽ വിലാസത്തിലേക്കുള്ള ഡൈനാമിക് ലിങ്കർ
(ഇത് അഭ്യർത്ഥനകൾക്കിടയിൽ വ്യത്യാസപ്പെടാം). ചലനാത്മകമായി സാധാരണ പോലെ
ലിങ്ക്ഡ് എക്സിക്യൂട്ടബിളുകൾ അവ എക്സിക്യൂട്ട് ചെയ്യാനും ചിഹ്നങ്ങൾ നിർവചിക്കാനും കഴിയും
പങ്കിട്ട ലൈബ്രറികൾക്ക് എക്സിക്യൂട്ടബിൾ അസാധുവാക്കാൻ കഴിയില്ല.
-ക്മാജിക്
Linux അനുയോജ്യതയ്ക്കായി ഈ ഓപ്ഷൻ അവഗണിക്കപ്പെട്ടിരിക്കുന്നു.
-Qy SVR4 അനുയോജ്യതയ്ക്കായി ഈ ഓപ്ഷൻ അവഗണിക്കപ്പെട്ടിരിക്കുന്നു.
--ശാന്തമാകൂ
--വിശ്രമമില്ല
മെഷീൻ ആശ്രിത ഇഫക്റ്റുകൾ ഉള്ള ഒരു ഓപ്ഷൻ. ഈ ഓപ്ഷൻ മാത്രമാണ്
കുറച്ച് ലക്ഷ്യങ്ങളിൽ പിന്തുണച്ചു.
ചില പ്ലാറ്റ്ഫോമുകളിൽ --ശാന്തമാകൂ ഓപ്ഷൻ ടാർഗെറ്റ് നിർദ്ദിഷ്ട നിർവ്വഹിക്കുന്നു,
ലിങ്കർ പരിഹരിക്കുമ്പോൾ സാധ്യമാകുന്ന ആഗോള ഒപ്റ്റിമൈസേഷനുകൾ
റിലാക്സിംഗ് അഡ്രസ് മോഡുകൾ പോലെ പ്രോഗ്രാമിലെ അഭിസംബോധന,
പുതിയ നിർദ്ദേശങ്ങൾ സമന്വയിപ്പിക്കുന്നു, നിലവിലുള്ളതിന്റെ ചെറിയ പതിപ്പ് തിരഞ്ഞെടുക്കുന്നു
നിർദ്ദേശങ്ങൾ, സ്ഥിരമായ മൂല്യങ്ങൾ സംയോജിപ്പിക്കൽ.
ചില പ്ലാറ്റ്ഫോമുകളിൽ ഈ ലിങ്ക് ടൈം ഗ്ലോബൽ ഒപ്റ്റിമൈസേഷനുകൾ ഉണ്ടാക്കിയേക്കാം
ഫലമായുണ്ടാകുന്ന എക്സിക്യൂട്ടബിളിന്റെ പ്രതീകാത്മക ഡീബഗ്ഗിംഗ് അസാധ്യമാണ്. ഇതാണ്
Matsushita MN10200, MN10300 കുടുംബങ്ങളുടെ കാര്യം അറിയപ്പെടുന്നു
പ്രോസസ്സറുകളുടെ.
ഇത് പിന്തുണയ്ക്കാത്ത പ്ലാറ്റ്ഫോമുകളിൽ, --ശാന്തമാകൂ അംഗീകരിക്കപ്പെടുന്നു, പക്ഷേ
അവഗണിച്ചു.
എവിടെ പ്ലാറ്റ്ഫോമുകളിൽ --ശാന്തമാകൂ ഓപ്ഷൻ അംഗീകരിക്കുന്നു --വിശ്രമമില്ല കഴിയും
സവിശേഷത പ്രവർത്തനരഹിതമാക്കാൻ ഉപയോഗിക്കുന്നു.
--retain-symbols-file=ഫയലിന്റെ പേര്
നിലനിർത്തുക മാത്രം ഫയലിൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന ചിഹ്നങ്ങൾ ഫയലിന്റെ പേര്, എല്ലാം തള്ളിക്കളയുന്നു
മറ്റുള്ളവർ. ഫയലിന്റെ പേര് ഒരു പരന്ന ഫയലാണ്, ഓരോന്നിനും ഒരു ചിഹ്ന നാമം
ലൈൻ. ഈ ഓപ്ഷൻ പരിതസ്ഥിതികളിൽ പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ് (ഉദാ
VxWorks) ഒരു വലിയ ആഗോള ചിഹ്ന പട്ടിക ശേഖരിക്കപ്പെടുന്നു
ക്രമേണ, റൺ-ടൈം മെമ്മറി സംരക്ഷിക്കാൻ.
--retain-symbols-file ചെയ്യുന്നവൻ അല്ല നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ ഉപേക്ഷിക്കുക, അല്ലെങ്കിൽ
സ്ഥലം മാറ്റത്തിന് ആവശ്യമായ ചിഹ്നങ്ങൾ.
നിങ്ങൾക്ക് മാത്രം വ്യക്തമാക്കാം --retain-symbols-file ഒരിക്കൽ കമാൻഡിൽ
ലൈൻ. അത് മറികടക്കുന്നു -s ഒപ്പം -S.
-rpath=മുതലാളി
റൺടൈം ലൈബ്രറി തിരയൽ പാതയിലേക്ക് ഒരു ഡയറക്ടറി ചേർക്കുക. ഇത് ഉപയോഗിക്കുന്നു
പങ്കിട്ട ഒബ്ജക്റ്റുകളുമായി എക്സിക്യൂട്ടബിൾ ഒരു ELF ലിങ്ക് ചെയ്യുമ്പോൾ. എല്ലാം -rpath
ആർഗ്യുമെന്റുകൾ സംയോജിപ്പിച്ച് റൺടൈം ലിങ്കറിലേക്ക് കൈമാറുന്നു
റൺടൈമിൽ പങ്കിട്ട ഒബ്ജക്റ്റുകൾ കണ്ടെത്തുന്നതിന് അവ ഉപയോഗിക്കുന്നു. ദി -rpath ഓപ്ഷൻ
ആവശ്യമുള്ള പങ്കിട്ട ഒബ്ജക്റ്റുകൾ കണ്ടെത്തുമ്പോഴും ഇത് ഉപയോഗിക്കുന്നു
ലിങ്കിൽ വ്യക്തമായി ഉൾപ്പെടുത്തിയിട്ടുള്ള പങ്കിട്ട വസ്തുക്കൾ; വിവരണം കാണുക
എന്ന -rpath-link ഓപ്ഷൻ. എങ്കിൽ -rpath ഒരു ലിങ്ക് ചെയ്യുമ്പോൾ ഉപയോഗിക്കില്ല
ELF എക്സിക്യൂട്ടബിൾ, പരിസ്ഥിതി വേരിയബിളിന്റെ ഉള്ളടക്കം
നിർവചിച്ചാൽ "LD_RUN_PATH" ഉപയോഗിക്കും.
ദി -rpath SunOS-ലും ഓപ്ഷൻ ഉപയോഗിക്കാം. സ്ഥിരസ്ഥിതിയായി, SunOS-ൽ,
ലിങ്കർ എല്ലാത്തിൽ നിന്നും ഒരു റൺടൈം തിരയൽ പാത രൂപീകരിക്കും -L
ഓപ്ഷനുകൾ അത് നൽകിയിരിക്കുന്നു. അത് അങ്ങിനെയെങ്കിൽ -rpath ഓപ്ഷൻ ഉപയോഗിക്കുന്നു, റൺടൈം
ഉപയോഗിച്ച് പ്രത്യേകമായി സെർച്ച് പാത്ത് രൂപീകരിക്കും -rpath ഓപ്ഷനുകൾ,
അവഗണിക്കുന്നു -L ഓപ്ഷനുകൾ. gcc ഉപയോഗിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാകും
പലതും ചേർക്കുന്നു -L എൻഎഫ്എസ് മൌണ്ട് ചെയ്ത ഫയൽ സിസ്റ്റങ്ങളിലുള്ള ഓപ്ഷനുകൾ.
മറ്റ് ELF ലിങ്കറുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി, എങ്കിൽ -R ഓപ്ഷൻ ആണ്
ഫയലിന്റെ പേരിനുപകരം ഒരു ഡയറക്ടറി നാമം പിന്തുടരുന്നു
ആയി കണക്കാക്കുന്നു -rpath ഓപ്ഷൻ.
-rpath-link=മുതലാളി
ELF അല്ലെങ്കിൽ SunOS ഉപയോഗിക്കുമ്പോൾ, ഒരു പങ്കിട്ട ലൈബ്രറിക്ക് മറ്റൊന്ന് ആവശ്യമായി വന്നേക്കാം.
"ld-shared" ലിങ്കിൽ ഒരു പങ്കിട്ട ലൈബ്രറി ഉൾപ്പെടുമ്പോൾ ഇത് സംഭവിക്കുന്നു
ഇൻപുട്ട് ഫയലുകളിലൊന്ന്.
ഒരു നോൺ ചെയ്യുമ്പോൾ ലിങ്കർ അത്തരം ആശ്രിതത്വം നേരിടുമ്പോൾ
പങ്കിട്ട, മാറ്റിസ്ഥാപിക്കാനാകാത്ത ലിങ്ക്, അത് സ്വയമേവ കണ്ടെത്താൻ ശ്രമിക്കും
ആവശ്യമുള്ള പങ്കിട്ട ലൈബ്രറി, ഉണ്ടെങ്കിൽ അത് ലിങ്കിൽ ഉൾപ്പെടുത്തുക
വ്യക്തമായി ഉൾപ്പെടുത്തിയിട്ടില്ല. അത്തരമൊരു സാഹചര്യത്തിൽ, ദി -rpath-link ഓപ്ഷൻ
തിരയാനുള്ള ആദ്യ സെറ്റ് ഡയറക്ടറികൾ വ്യക്തമാക്കുന്നു. ദി -rpath-link
ഓപ്ഷൻ ഡയറക്ടറി നാമങ്ങളുടെ ഒരു ശ്രേണി വ്യക്തമാക്കിയേക്കാം
കോളനുകളാൽ വേർതിരിക്കുന്ന പേരുകളുടെ ഒരു ലിസ്റ്റ് വ്യക്തമാക്കുന്നു, അല്ലെങ്കിൽ പ്രത്യക്ഷപ്പെടുന്നത്
ഒന്നിലധികം തവണ.
തിരയലിനെ മറികടക്കുന്നതിനാൽ ഈ ഓപ്ഷൻ ജാഗ്രതയോടെ ഉപയോഗിക്കണം
ഒരു പങ്കിട്ട ലൈബ്രറിയിലേക്ക് കഠിനമായി സമാഹരിച്ചിരിക്കാവുന്ന പാത. ഇൻ
അത്തരമൊരു സാഹചര്യത്തിൽ അശ്രദ്ധമായി വ്യത്യസ്തമായി ഉപയോഗിക്കാൻ കഴിയും
റൺടൈം ലിങ്കർ ചെയ്യുന്നതിനേക്കാൾ തിരയൽ പാത.
ആവശ്യമുള്ള സ്ഥാനം കണ്ടെത്തുന്നതിന് ലിങ്കർ ഇനിപ്പറയുന്ന തിരയൽ പാതകൾ ഉപയോഗിക്കുന്നു
പങ്കിട്ട ലൈബ്രറികൾ:
1. വ്യക്തമാക്കിയ ഏതെങ്കിലും ഡയറക്ടറികൾ -rpath-link ഓപ്ഷനുകൾ.
2. വ്യക്തമാക്കിയ ഏതെങ്കിലും ഡയറക്ടറികൾ -rpath ഓപ്ഷനുകൾ. വ്യത്യാസം
തമ്മിലുള്ള -rpath ഒപ്പം -rpath-link എന്നത് വ്യക്തമാക്കിയ ഡയറക്ടറികളാണ്
-rpath ഓപ്ഷനുകൾ എക്സിക്യൂട്ടബിളിൽ ഉൾപ്പെടുത്തുകയും ഉപയോഗിക്കുകയും ചെയ്യുന്നു
റൺടൈം, അതേസമയം -rpath-link എന്നതിൽ മാത്രമേ ഓപ്ഷൻ ഫലപ്രദമാകൂ
ലിങ്ക് സമയം. തിരയുന്നു -rpath ഈ രീതിയിൽ മാത്രം പിന്തുണയ്ക്കുന്നു
കോൺഫിഗർ ചെയ്ത നേറ്റീവ് ലിങ്കറുകളും ക്രോസ് ലിങ്കറുകളും
കൂടെ --with-sysroot ഓപ്ഷൻ.
3. ഒരു ELF സിസ്റ്റത്തിൽ, നേറ്റീവ് ലിങ്കറുകൾക്ക്, എങ്കിൽ -rpath ഒപ്പം
-rpath-link ഓപ്ഷനുകൾ ഉപയോഗിച്ചിട്ടില്ല, എന്നതിന്റെ ഉള്ളടക്കങ്ങൾ തിരയുക
പരിസ്ഥിതി വേരിയബിൾ "LD_RUN_PATH".
4. SunOS-ൽ, എങ്കിൽ -rpath ഓപ്ഷൻ ഉപയോഗിച്ചിട്ടില്ല, ഏതെങ്കിലും തിരയുക
ഉപയോഗിച്ച് വ്യക്തമാക്കിയ ഡയറക്ടറികൾ -L ഓപ്ഷനുകൾ.
5. ഒരു നേറ്റീവ് ലിങ്കർക്കായി, പരിസ്ഥിതിയുടെ ഉള്ളടക്കങ്ങൾ തിരയുക
വേരിയബിൾ "LD_LIBRARY_PATH".
6. ഒരു നേറ്റീവ് ELF ലിങ്കറിന്, "DT_RUNPATH" എന്നതിലെ ഡയറക്ടറികൾ അല്ലെങ്കിൽ
പങ്കിട്ട ലൈബ്രറിയുടെ "DT_RPATH" പങ്കിട്ടവനായി തിരയുന്നു
അതിന് ആവശ്യമായ ലൈബ്രറികൾ. എങ്കിൽ "DT_RPATH" എൻട്രികൾ അവഗണിക്കപ്പെടും
"DT_RUNPATH" എൻട്രികൾ നിലവിലുണ്ട്.
7. ഡിഫോൾട്ട് ഡയറക്ടറികൾ, സാധാരണയായി / ലിബ് ഒപ്പം / Usr / lib.
8. ഒരു ELF സിസ്റ്റത്തിലെ ഒരു നേറ്റീവ് ലിങ്കറിന്, ഫയൽ ആണെങ്കിൽ
/etc/ld.so.conf അതിൽ കാണുന്ന ഡയറക്ടറികളുടെ ലിസ്റ്റ് നിലവിലുണ്ട്
ഫയൽ.
ആവശ്യമായ പങ്കിട്ട ലൈബ്രറി കണ്ടെത്തിയില്ലെങ്കിൽ, ലിങ്കർ ഇഷ്യൂ ചെയ്യും
ഒരു മുന്നറിയിപ്പ് നൽകി ലിങ്കിൽ തുടരുക.
- പങ്കിട്ടു
- പങ്കിടാവുന്നതാണ്
ഒരു പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുക. ഇത് നിലവിൽ ELF-ൽ മാത്രമാണ് പിന്തുണയ്ക്കുന്നത്,
XCOFF, SunOS പ്ലാറ്റ്ഫോമുകൾ. SunOS-ൽ, ലിങ്കർ സ്വയമേവ പ്രവർത്തിക്കും
എങ്കിൽ ഒരു പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുക -e ഓപ്ഷൻ ഉപയോഗിക്കുന്നില്ല കൂടാതെ ഉണ്ട്
ലിങ്കിൽ നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ.
--സോർട്ട്-പൊതുവാണ്
--sort-common=ആരോഹണം
--sort-common=descending
ഈ ഓപ്ഷൻ പറയുന്നു ld വിന്യാസം വഴി പൊതുവായ ചിഹ്നങ്ങൾ അടുക്കുക
ആരോഹണ അല്ലെങ്കിൽ അവരോഹണ ക്രമത്തിൽ അവയെ സ്ഥാപിക്കുമ്പോൾ
ഉചിതമായ ഔട്ട്പുട്ട് വിഭാഗങ്ങൾ. പരിഗണിക്കപ്പെടുന്ന ചിഹ്ന വിന്യാസങ്ങളാണ്
പതിനാറ്-ബൈറ്റ് അല്ലെങ്കിൽ വലുത്, എട്ട്-ബൈറ്റ്, നാല്-ബൈറ്റ്, രണ്ട്-ബൈറ്റ്, ഒന്ന്-
ബൈറ്റ്. വിന്യാസം കാരണം ചിഹ്നങ്ങൾക്കിടയിലുള്ള വിടവുകൾ തടയുന്നതിനാണ് ഇത്
നിയന്ത്രണങ്ങൾ. സോർട്ടിംഗ് ഓർഡർ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, അവരോഹണം
ഓർഡർ അനുമാനിക്കപ്പെടുന്നു.
--sort-section=name
ഈ ഓപ്ഷൻ "SORT_BY_NAME" എല്ലാ വൈൽഡ്കാർഡ് വിഭാഗത്തിലും പ്രയോഗിക്കും
ലിങ്കർ സ്ക്രിപ്റ്റിലെ പാറ്റേണുകൾ.
--sort-section=alignment
ഈ ഓപ്ഷൻ "SORT_BY_ALIGNMENT" എല്ലാ വൈൽഡ്കാർഡ് വിഭാഗത്തിലും പ്രയോഗിക്കും
ലിങ്കർ സ്ക്രിപ്റ്റിലെ പാറ്റേണുകൾ.
--സ്പ്ലിറ്റ്-ബൈ-ഫയൽ[=വലുപ്പം]
സമാനമായ --സ്പ്ലിറ്റ്-ബൈ-റിലോക്ക് എന്നാൽ ഇതിനായി ഒരു പുതിയ ഔട്ട്പുട്ട് വിഭാഗം സൃഷ്ടിക്കുന്നു
ഓരോ ഇൻപുട്ട് ഫയലും എപ്പോൾ വലുപ്പം എത്തി. വലുപ്പം സ്ഥിരസ്ഥിതികൾ 1 എന്ന വലുപ്പത്തിലേക്ക്
നൽകിയില്ലെങ്കിൽ.
--സ്പ്ലിറ്റ്-ബൈ-റിലോക്ക്[=എണ്ണുക]
ഔട്ട്പുട്ട് ഫയലിൽ അധിക വിഭാഗങ്ങൾ സൃഷ്ടിക്കാൻ ശ്രമിക്കുന്നു, അങ്ങനെ ഇല്ല
ഫയലിലെ സിംഗിൾ ഔട്ട്പുട്ട് വിഭാഗത്തിൽ കൂടുതൽ അടങ്ങിയിരിക്കുന്നു എണ്ണുക
സ്ഥലംമാറ്റങ്ങൾ. മാറ്റിസ്ഥാപിക്കാവുന്ന വലിയ ഫയലുകൾ സൃഷ്ടിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്
COFF ഒബ്ജക്റ്റ് ഉപയോഗിച്ച് ചില തത്സമയ കേർണലുകളിലേക്ക് ഡൗൺലോഡ് ചെയ്യുന്നതിന്
ഫയൽ ഫോർമാറ്റ്; കാരണം COFF-ന് 65535-ൽ കൂടുതൽ പ്രതിനിധീകരിക്കാൻ കഴിയില്ല
ഒരൊറ്റ വിഭാഗത്തിലെ സ്ഥലംമാറ്റങ്ങൾ. ഇത് പ്രവർത്തിക്കുന്നതിൽ പരാജയപ്പെടുമെന്ന് ശ്രദ്ധിക്കുക
അനിയന്ത്രിതമായ വിഭാഗങ്ങളെ പിന്തുണയ്ക്കാത്ത ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകൾക്കൊപ്പം.
ലിങ്കർ വ്യക്തിഗത ഇൻപുട്ട് വിഭാഗങ്ങൾ വിഭജിക്കില്ല
പുനർവിതരണം, അതിനാൽ ഒരൊറ്റ ഇൻപുട്ട് വിഭാഗത്തിൽ കൂടുതൽ അടങ്ങിയിരിക്കുന്നുവെങ്കിൽ
എണ്ണുക സ്ഥലംമാറ്റങ്ങൾ ഒരു ഔട്ട്പുട്ട് സെക്ഷനിൽ പലതും അടങ്ങിയിരിക്കും
സ്ഥലംമാറ്റങ്ങൾ. എണ്ണുക 32768 എന്ന മൂല്യത്തിലേക്ക് സ്ഥിരസ്ഥിതിയായി.
-- സ്ഥിതിവിവരക്കണക്കുകൾ
ലിങ്കറിന്റെ പ്രവർത്തനത്തെക്കുറിച്ചുള്ള സ്ഥിതിവിവരക്കണക്കുകൾ കണക്കാക്കുകയും പ്രദർശിപ്പിക്കുകയും ചെയ്യുക,
എക്സിക്യൂഷൻ സമയവും മെമ്മറി ഉപയോഗവും പോലെ.
--sysroot=ഡയറക്ടറി
ഉപയോഗം ഡയറക്ടറി സിസ്റൂട്ടിന്റെ സ്ഥാനമായി, അതിനെ മറികടക്കുന്നു
കോൺഫിഗർ-ടൈം ഡിഫോൾട്ട്. ഈ ഓപ്ഷൻ ലിങ്കർമാർ മാത്രമേ പിന്തുണയ്ക്കൂ
ഉപയോഗിച്ച് ക്രമീകരിച്ചത് --with-sysroot.
--പരമ്പരാഗത-ഫോർമാറ്റ്
ചില ലക്ഷ്യങ്ങൾക്കായി, ഔട്ട്പുട്ട് ld നിന്ന് ചില വഴികളിൽ വ്യത്യസ്തമാണ്
നിലവിലുള്ള ചില ലിങ്കറിന്റെ ഔട്ട്പുട്ട്. ഈ സ്വിച്ച് അഭ്യർത്ഥിക്കുന്നു ld ഉപയോഗിക്കാൻ
പകരം പരമ്പരാഗത ഫോർമാറ്റ്.
ഉദാഹരണത്തിന്, SunOS-ൽ, ld ചിഹ്നത്തിലെ ഡ്യൂപ്ലിക്കേറ്റ് എൻട്രികൾ സംയോജിപ്പിക്കുന്നു
സ്ട്രിംഗ് ടേബിൾ. ഇത് ഒരു ഔട്ട്പുട്ട് ഫയലിന്റെ വലുപ്പം പൂർണ്ണമായി കുറയ്ക്കാൻ കഴിയും
30 ശതമാനത്തിലധികം ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ. നിർഭാഗ്യവശാൽ, SunOS
"dbx" പ്രോഗ്രാമിന് തത്ഫലമായുണ്ടാകുന്ന പ്രോഗ്രാം വായിക്കാൻ കഴിയില്ല ("gdb" ൽ ഇല്ല
കുഴപ്പം). ദി --പരമ്പരാഗത-ഫോർമാറ്റ് സ്വിച്ച് പറയുന്നു ld സംയോജിപ്പിക്കാതിരിക്കാൻ
ഡ്യൂപ്ലിക്കേറ്റ് എൻട്രികൾ.
--section-start=വിഭാഗത്തിന്റെ പേര്=org
നൽകിയിരിക്കുന്ന സമ്പൂർണ്ണ വിലാസത്തിൽ ഔട്ട്പുട്ട് ഫയലിൽ ഒരു വിഭാഗം കണ്ടെത്തുക
by org. നിങ്ങൾക്ക് ആവശ്യമുള്ളത്ര തവണ ഈ ഓപ്ഷൻ ഉപയോഗിക്കാം
കമാൻഡ് ലൈനിൽ ഒന്നിലധികം വിഭാഗങ്ങൾ കണ്ടെത്തുക. org അവിവാഹിതനായിരിക്കണം
ഹെക്സാഡെസിമൽ പൂർണ്ണസംഖ്യ; മറ്റ് ലിങ്കറുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി, നിങ്ങൾക്ക് ചെയ്യാം
ലീഡിംഗ് ഒഴിവാക്കുക 0x സാധാരണയായി ഹെക്സാഡെസിമൽ മൂല്യങ്ങളുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു.
കുറിപ്പ്: ഇടയിൽ വെളുത്ത ഇടം ഉണ്ടാകരുത് വിഭാഗത്തിന്റെ പേര്,
തുല്യ ചിഹ്നം ("="), ഒപ്പം org.
-Tbss=org
-Tdata=org
-Ttext=org
അതുപോലെ തന്നെ --വിഭാഗം-ആരംഭം, ".bss", ".data" അല്ലെങ്കിൽ ".text" എന്നിവ ഉപയോഗിച്ച്
വിഭാഗത്തിന്റെ പേര്.
-Ttext-segment=org
ഒരു ELF എക്സിക്യൂട്ടബിൾ സൃഷ്ടിക്കുമ്പോൾ, അത് വിലാസത്തിന്റെ വിലാസം സജ്ജമാക്കും
ടെക്സ്റ്റ് സെഗ്മെന്റിന്റെ ആദ്യ ബൈറ്റ്.
-ട്രോഡാറ്റ-വിഭാഗം=org
ഒരു ടാർഗെറ്റിനായി ഒരു ELF എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ
റീഡ്-ഒൺലി ഡാറ്റ അതിന്റെ സ്വന്തം സെഗ്മെന്റിൽ നിന്ന് വേറിട്ടതാണ്
എക്സിക്യൂട്ടബിൾ ടെക്സ്റ്റ്, ഇത് ആദ്യ ബൈറ്റിന്റെ വിലാസം സജ്ജമാക്കും
വായന-മാത്രം ഡാറ്റ വിഭാഗം.
-Tldata-segment=org
x86-64 മീഡിയത്തിനായി ഒരു ELF എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ
മെമ്മറി മോഡൽ, ഇത് ആദ്യ ബൈറ്റിന്റെ വിലാസം സജ്ജമാക്കും
ldata വിഭാഗം.
--unresolved-symbols=രീതി
പരിഹരിക്കപ്പെടാത്ത ചിഹ്നങ്ങൾ എങ്ങനെ കൈകാര്യം ചെയ്യണമെന്ന് നിർണ്ണയിക്കുക. നാലു ഉണ്ട്
സാധ്യമായ മൂല്യങ്ങൾ രീതി:
അവഗണിക്കുക-എല്ലാം
പരിഹരിക്കപ്പെടാത്ത ചിഹ്നങ്ങളൊന്നും റിപ്പോർട്ട് ചെയ്യരുത്.
റിപ്പോർട്ട്-എല്ലാം
പരിഹരിക്കപ്പെടാത്ത എല്ലാ ചിഹ്നങ്ങളും റിപ്പോർട്ട് ചെയ്യുക. ഇതാണ് സ്ഥിരസ്ഥിതി.
ഒബ്ജക്റ്റ് ഫയലുകൾ അവഗണിക്കുക
പങ്കിട്ടതിൽ അടങ്ങിയിരിക്കുന്ന പരിഹരിക്കപ്പെടാത്ത ചിഹ്നങ്ങൾ റിപ്പോർട്ട് ചെയ്യുക
ലൈബ്രറികൾ, പക്ഷേ അവ സാധാരണ ഒബ്ജക്റ്റിൽ നിന്നാണെങ്കിൽ അവ അവഗണിക്കുക
ഫയലുകൾ.
അവഗണിക്കുക-ഇൻ-പങ്കിട്ട-ലിബ്സ്
സാധാരണ ഒബ്ജക്റ്റ് ഫയലുകളിൽ നിന്ന് വരുന്ന പരിഹരിക്കപ്പെടാത്ത ചിഹ്നങ്ങൾ റിപ്പോർട്ട് ചെയ്യുക,
എന്നാൽ അവ പങ്കിട്ട ലൈബ്രറികളിൽ നിന്നാണെങ്കിൽ അവ അവഗണിക്കുക. ഇതിന് കഴിയും
ഒരു ഡൈനാമിക് ബൈനറി സൃഷ്ടിക്കുമ്പോൾ ഉപയോഗപ്രദമാകും, അത് അറിയപ്പെടുന്നു
അത് റഫറൻസ് ചെയ്യേണ്ട എല്ലാ പങ്കിട്ട ലൈബ്രറികളും
ലിങ്കറുടെ കമാൻഡ് ലൈനിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.
സ്വന്തം നിലയിൽ പങ്കിട്ട ലൈബ്രറികളുടെ പെരുമാറ്റവും ആകാം
നിയന്ത്രിക്കുന്നത് --[no-]allow-shlib-undefined ഓപ്ഷൻ.
സാധാരണയായി ലിങ്കർ ഓരോന്നിനും ഒരു പിശക് സന്ദേശം സൃഷ്ടിക്കും
പരിഹരിക്കപ്പെടാത്ത ചിഹ്നം റിപ്പോർട്ടുചെയ്തു, പക്ഷേ ഓപ്ഷൻ --മുന്നറിയിപ്പ്-പരിഹരിക്കപ്പെടാത്ത-ചിഹ്നങ്ങൾ
ഇത് ഒരു മുന്നറിയിപ്പായി മാറ്റാം.
--dll-verbose
--verbose[=NUMBER]
ഇതിനായുള്ള പതിപ്പ് നമ്പർ പ്രദർശിപ്പിക്കുക ld ലിങ്കർ എമുലേഷനുകൾ ലിസ്റ്റുചെയ്യുക
പിന്തുണച്ചു. ഏതൊക്കെ ഇൻപുട്ട് ഫയലുകൾ തുറക്കാനും തുറക്കാനും കഴിയില്ലെന്ന് പ്രദർശിപ്പിക്കുക.
ലിങ്കർ ഉപയോഗിക്കുന്ന ലിങ്കർ സ്ക്രിപ്റ്റ് പ്രദർശിപ്പിക്കുക. ഓപ്ഷണൽ ആണെങ്കിൽ
NUMBER വാദം > 1, പ്ലഗിൻ ചിഹ്ന നിലയും പ്രദർശിപ്പിക്കും.
--version-script=പതിപ്പ്-സ്ക്രിപ്റ്റ് ഫയൽ
ലിങ്കറിലേക്ക് ഒരു പതിപ്പ് സ്ക്രിപ്റ്റിന്റെ പേര് വ്യക്തമാക്കുക. ഇതാണ്
അധികമായി വ്യക്തമാക്കുന്നതിന് പങ്കിട്ട ലൈബ്രറികൾ സൃഷ്ടിക്കുമ്പോൾ സാധാരണയായി ഉപയോഗിക്കുന്നു
ലൈബ്രറിയുടെ പതിപ്പ് ശ്രേണിയെക്കുറിച്ചുള്ള വിവരങ്ങൾ
സൃഷ്ടിച്ചു. ELF പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ ഈ ഓപ്ഷൻ പൂർണ്ണമായി പിന്തുണയ്ക്കൂ
പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്നവ; കാണുക പതിപ്പ്. ഇത് ഭാഗികമാണ്
PE പ്ലാറ്റ്ഫോമുകളിൽ പിന്തുണയ്ക്കുന്നു, അവ ഫിൽട്ടർ ചെയ്യാൻ പതിപ്പ് സ്ക്രിപ്റ്റുകൾ ഉപയോഗിക്കാം
യാന്ത്രിക-കയറ്റുമതി മോഡിൽ ചിഹ്ന ദൃശ്യപരത: ഏതെങ്കിലും ചിഹ്നങ്ങൾ അടയാളപ്പെടുത്തിയിരിക്കുന്നു പ്രാദേശിക in
പതിപ്പ് സ്ക്രിപ്റ്റ് കയറ്റുമതി ചെയ്യില്ല.
--മുന്നറിയിപ്പ്-സാധാരണ
ഒരു പൊതു ചിഹ്നം മറ്റൊരു പൊതു ചിഹ്നവുമായി സംയോജിപ്പിക്കുമ്പോൾ മുന്നറിയിപ്പ് നൽകുക
ഒരു ചിഹ്ന നിർവ്വചനം. Unix ലിങ്കറുകൾ ഇത് കുറച്ച് സ്ലോപ്പി അനുവദിക്കുന്നു
പരിശീലിക്കുക, എന്നാൽ മറ്റ് ചില ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലെ ലിങ്കറുകൾ അങ്ങനെ ചെയ്യുന്നില്ല. ഈ
ആഗോള സംയോജനത്തിൽ നിന്ന് സാധ്യമായ പ്രശ്നങ്ങൾ കണ്ടെത്താൻ ഓപ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു
ചിഹ്നങ്ങൾ. നിർഭാഗ്യവശാൽ, ചില സി ലൈബ്രറികൾ ഈ രീതി ഉപയോഗിക്കുന്നു, അതിനാൽ നിങ്ങൾ
ലൈബ്രറികളിലും അതുപോലെ തന്നെ ചിഹ്നങ്ങളെക്കുറിച്ച് ചില മുന്നറിയിപ്പുകൾ ലഭിച്ചേക്കാം
നിങ്ങളുടെ പ്രോഗ്രാമുകൾ.
മൂന്ന് തരത്തിലുള്ള ആഗോള ചിഹ്നങ്ങളുണ്ട്, ഇവിടെ സി
ഉദാഹരണങ്ങൾ:
int i = 1;
എന്നതിന്റെ ഇനീഷ്യലൈസ് ചെയ്ത ഡാറ്റ വിഭാഗത്തിൽ പോകുന്ന ഒരു നിർവചനം
ഔട്ട്പുട്ട് ഫയൽ.
ബാഹ്യ int i;
നിർവചിക്കാത്ത റഫറൻസ്, അത് സ്ഥലം അനുവദിക്കുന്നില്ല. അവിടെ
ഒന്നുകിൽ വേരിയബിളിന് ഒരു നിർവചനമോ പൊതുവായ ചിഹ്നമോ ആയിരിക്കണം
എവിടെയോ.
int i;
ഒരു പൊതു ചിഹ്നം. (ഒന്നോ അതിലധികമോ) പൊതുവായവ മാത്രമാണെങ്കിൽ
ഒരു വേരിയബിളിനുള്ള ചിഹ്നങ്ങൾ, അത് ആരംഭിക്കാത്ത ഡാറ്റ ഏരിയയിൽ പോകുന്നു
ഔട്ട്പുട്ട് ഫയലിന്റെ. ലിങ്കർ ഒന്നിലധികം പൊതു ചിഹ്നങ്ങൾ ലയിപ്പിക്കുന്നു
ഒരേ വേരിയബിളിന് ഒരൊറ്റ ചിഹ്നത്തിലേക്ക്. അവരുടേതാണെങ്കിൽ
വ്യത്യസ്ത വലുപ്പങ്ങൾ, അത് ഏറ്റവും വലിയ വലുപ്പം തിരഞ്ഞെടുക്കുന്നു. ലിങ്കർ എ ആയി മാറുന്നു
ഒരു നിർവചനം ഉണ്ടെങ്കിൽ, ഒരു പ്രഖ്യാപനത്തിലേക്ക് പൊതുവായ ചിഹ്നം
ഒരേ വേരിയബിൾ.
ദി --മുന്നറിയിപ്പ്-സാധാരണ ഓപ്ഷന് അഞ്ച് തരത്തിലുള്ള മുന്നറിയിപ്പുകൾ നൽകാൻ കഴിയും. ഓരോന്നും
മുന്നറിയിപ്പ് ഒരു ജോടി വരികൾ ഉൾക്കൊള്ളുന്നു: ആദ്യത്തേത് ചിഹ്നത്തെ വിവരിക്കുന്നു
ഇപ്പോൾ കണ്ടുമുട്ടി, രണ്ടാമത്തേത് മുമ്പത്തെ ചിഹ്നത്തെ വിവരിക്കുന്നു
അതേ പേരിൽ കണ്ടുമുട്ടി. രണ്ട് ചിഹ്നങ്ങളിൽ ഒന്നോ രണ്ടോ
ഒരു പൊതു ചിഹ്നമായിരിക്കും.
1. ഒരു പൊതു ചിഹ്നത്തെ ഒരു റഫറൻസാക്കി മാറ്റുന്നു, കാരണം അവിടെയുണ്ട്
ചിഹ്നത്തിന് ഇതിനകം ഒരു നിർവചനം.
( ): മുന്നറിയിപ്പ്: പൊതുവായത് ` '
നിർവചനം പ്രകാരം അസാധുവാക്കിയിരിക്കുന്നു
( ): മുന്നറിയിപ്പ്: ഇവിടെ നിർവചിച്ചിരിക്കുന്നു
2. ഒരു പൊതു ചിഹ്നത്തെ ഒരു റഫറൻസാക്കി മാറ്റുന്നു, കാരണം പിന്നീട്
ചിഹ്നത്തിന്റെ നിർവചനം നേരിട്ടു. ഇതും സമാനമാണ്
മുമ്പത്തെ കേസ്, ചിഹ്നങ്ങൾ a-ൽ കണ്ടുമുട്ടിയതൊഴിച്ചാൽ
വ്യത്യസ്ത ക്രമം.
( ): മുന്നറിയിപ്പ്: ` എന്നതിന്റെ നിർവചനം '
അസാധുവാക്കൽ സാധാരണ
( ): മുന്നറിയിപ്പ്: ഇവിടെ പൊതുവായതാണ്
3. മുമ്പത്തെ അതേ വലിപ്പത്തിലുള്ള പൊതുവായ ഒരു പൊതു ചിഹ്നവുമായി ലയിപ്പിക്കൽ
ചിഹ്നം.
( ): മുന്നറിയിപ്പ്: ഒന്നിലധികം പൊതുവായത്
ന്റെ ` '
( ): മുന്നറിയിപ്പ്: മുമ്പത്തെ പൊതുവായത് ഇവിടെയുണ്ട്
4. മുമ്പത്തെ വലിയ പൊതു ചിഹ്നവുമായി ഒരു പൊതു ചിഹ്നം ലയിപ്പിക്കുക.
( ): മുന്നറിയിപ്പ്: പൊതുവായത് ` '
വലിയ പൊതുവായി അസാധുവാക്കുന്നു
( ): മുന്നറിയിപ്പ്: വലിയ പൊതുവായത് ഇവിടെയുണ്ട്
5. മുമ്പത്തെ ചെറിയ പൊതു ചിഹ്നവുമായി ഒരു പൊതു ചിഹ്നം ലയിപ്പിക്കുക.
ചിഹ്നങ്ങൾ ഒഴികെ, ഇത് മുമ്പത്തെ കേസിന് സമാനമാണ്
മറ്റൊരു ക്രമത്തിൽ കണ്ടുമുട്ടുന്നു.
( ): മുന്നറിയിപ്പ്: പൊതുവായത് ` '
ചെറിയ പൊതുവായതിനെ മറികടക്കുന്നു
( ): മുന്നറിയിപ്പ്: ചെറിയ പൊതുവായത് ഇവിടെയുണ്ട്
--മുന്നറിയിപ്പ്-നിർമ്മാതാക്കൾ
ഏതെങ്കിലും ഗ്ലോബൽ കൺസ്ട്രക്ടറുകൾ ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ മുന്നറിയിപ്പ് നൽകുക. ഇത് ഉപയോഗപ്രദമാണ്
കുറച്ച് ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകൾ. COFF അല്ലെങ്കിൽ ELF പോലുള്ള ഫോർമാറ്റുകൾക്ക്, the
ലിങ്കറിന് ഗ്ലോബൽ കൺസ്ട്രക്റ്ററുകളുടെ ഉപയോഗം കണ്ടെത്താൻ കഴിയില്ല.
--warn-multiple-gp
ഔട്ട്പുട്ടിൽ ഒന്നിലധികം ആഗോള പോയിന്റർ മൂല്യങ്ങൾ ആവശ്യമാണെങ്കിൽ മുന്നറിയിപ്പ് നൽകുക
ഫയൽ. പോലുള്ള ചില പ്രോസസ്സറുകൾക്ക് മാത്രമേ ഇത് അർത്ഥവത്തായിട്ടുള്ളൂ
ആൽഫ. പ്രത്യേകിച്ചും, ചില പ്രോസസ്സറുകൾ വലിയ മൂല്യമുള്ള സ്ഥിരാങ്കങ്ങൾ ഇടുന്നു
ഒരു പ്രത്യേക വിഭാഗം. ഒരു പ്രത്യേക രജിസ്റ്റർ (ഗ്ലോബൽ പോയിന്റർ) പോയിന്റുകൾ
ഈ വിഭാഗത്തിന്റെ നടുവിലേക്ക്, അങ്ങനെ സ്ഥിരാങ്കങ്ങൾ ലോഡ് ചെയ്യാൻ കഴിയും
അടിസ്ഥാന-രജിസ്റ്റർ ആപേക്ഷിക വിലാസ മോഡ് വഴി കാര്യക്ഷമമായി. മുതലുള്ള
അടിസ്ഥാന-രജിസ്റ്റർ റിലേറ്റീവ് മോഡിലെ ഓഫ്സെറ്റ് സ്ഥിരവും താരതമ്യേനയുമാണ്
ചെറുത് (ഉദാ, 16 ബിറ്റുകൾ), ഇത് സ്ഥിരാങ്കത്തിന്റെ പരമാവധി വലുപ്പം പരിമിതപ്പെടുത്തുന്നു
കുളം. അതിനാൽ, വലിയ പ്രോഗ്രാമുകളിൽ, പലപ്പോഴും ഉപയോഗിക്കേണ്ടത് ആവശ്യമാണ്
എല്ലാവരെയും അഭിസംബോധന ചെയ്യുന്നതിനായി ഒന്നിലധികം ആഗോള പോയിന്റർ മൂല്യങ്ങൾ
സാധ്യമായ സ്ഥിരാങ്കങ്ങൾ. ഈ ഓപ്ഷൻ ഒരു മുന്നറിയിപ്പ് നൽകുന്നതിന് കാരണമാകുന്നു
ഈ കേസ് സംഭവിക്കുമ്പോഴെല്ലാം.
--മുന്നറിയിപ്പ്-ഒരിക്കൽ
നിർവചിക്കാത്ത ഓരോ ചിഹ്നത്തിനും ഒരിക്കൽ മാത്രം മുന്നറിയിപ്പ് നൽകുക
അതിനെ സൂചിപ്പിക്കുന്ന മൊഡ്യൂൾ.
--മുന്നറിയിപ്പ്-വിഭാഗം-അലൈൻ ചെയ്യുക
കാരണം ഒരു ഔട്ട്പുട്ട് വിഭാഗത്തിന്റെ വിലാസം മാറിയെങ്കിൽ മുന്നറിയിപ്പ് നൽകുക
വിന്യാസം. സാധാരണഗതിയിൽ, വിന്യാസം ഒരു ഇൻപുട്ട് വഴി സജ്ജീകരിക്കും
വിഭാഗം. വിലാസം വ്യക്തമായില്ലെങ്കിൽ മാത്രമേ മാറ്റൂ
വ്യക്തമാക്കിയ; അതായത്, "SECTIONS" കമാൻഡ് വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ a
വിഭാഗത്തിന്റെ വിലാസം ആരംഭിക്കുക.
--warn-shared-textrel
പങ്കിട്ട ഒബ്ജക്റ്റിലേക്ക് ലിങ്കർ ഒരു DT_TEXTREL ചേർത്താൽ മുന്നറിയിപ്പ് നൽകുക.
--ഓൾട്ടർനേറ്റ്-എം
ഒരു വസ്തുവിന് ഇതര ELF മെഷീൻ കോഡ് ഉണ്ടെങ്കിൽ മുന്നറിയിപ്പ് നൽകുക.
--മുന്നറിയിപ്പ്-പരിഹരിക്കപ്പെടാത്ത-ചിഹ്നങ്ങൾ
പരിഹരിക്കപ്പെടാത്ത ഒരു ചിഹ്നമാണ് ലിങ്കർ റിപ്പോർട്ട് ചെയ്യാൻ പോകുന്നതെങ്കിൽ (കാണുക
ഓപ്ഷൻ --പരിഹരിക്കപ്പെടാത്ത-ചിഹ്നങ്ങൾ) ഇത് സാധാരണയായി ഒരു പിശക് സൃഷ്ടിക്കും.
പകരം ഒരു മുന്നറിയിപ്പ് സൃഷ്ടിക്കാൻ ഈ ഓപ്ഷൻ സഹായിക്കുന്നു.
--പിശക്-പരിഹരിക്കപ്പെടാത്ത-ചിഹ്നങ്ങൾ
ഇത് പിശകുകൾ സൃഷ്ടിക്കുന്ന ലിങ്കറുടെ ഡിഫോൾട്ട് സ്വഭാവം പുനഃസ്ഥാപിക്കുന്നു
അത് പരിഹരിക്കപ്പെടാത്ത ചിഹ്നങ്ങൾ റിപ്പോർട്ട് ചെയ്യുമ്പോൾ.
--മുഴുവൻ ആർക്കൈവ്
ശേഷം കമാൻഡ് ലൈനിൽ സൂചിപ്പിച്ചിരിക്കുന്ന ഓരോ ആർക്കൈവിനും
--മുഴുവൻ ആർക്കൈവ് ഓപ്ഷൻ, ആർക്കൈവിലെ എല്ലാ ഒബ്ജക്റ്റ് ഫയലും ഉൾപ്പെടുത്തുക
ആവശ്യമായ ഒബ്ജക്റ്റിനായി ആർക്കൈവിൽ തിരയുന്നതിനുപകരം ലിങ്ക്
ഫയലുകൾ. ഇത് സാധാരണയായി ഒരു ആർക്കൈവ് ഫയലിനെ പങ്കിട്ടതായി മാറ്റാൻ ഉപയോഗിക്കുന്നു
ലൈബ്രറി, എല്ലാ വസ്തുവും ഫലത്തിൽ ഉൾപ്പെടുത്താൻ നിർബന്ധിതമാക്കുന്നു
പങ്കിട്ട ലൈബ്രറി. ഈ ഓപ്ഷൻ ഒന്നിലധികം തവണ ഉപയോഗിച്ചേക്കാം.
ജിസിസിയിൽ നിന്ന് ഈ ഓപ്ഷൻ ഉപയോഗിക്കുമ്പോൾ രണ്ട് കുറിപ്പുകൾ: ആദ്യം, ജിസിസിക്ക് അറിയില്ല
ഈ ഓപ്ഷനെ കുറിച്ച്, അതിനാൽ നിങ്ങൾ ഉപയോഗിക്കേണ്ടതുണ്ട് -Wl,-മുഴുവൻ-ആർക്കൈവ്. രണ്ടാമത്,
ഉപയോഗിക്കാൻ മറക്കരുത് -Wl,-നോ-ഹോൾ-ആർക്കൈവ് നിങ്ങളുടെ പട്ടികയ്ക്ക് ശേഷം
ആർക്കൈവുകൾ, കാരണം gcc നിങ്ങളുടെ ആർക്കൈവുകളുടെ സ്വന്തം ലിസ്റ്റ് ചേർക്കും
ലിങ്ക്, ഈ ഫ്ലാഗ് അവയെയും ബാധിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കില്ല.
--wrap=ചിഹ്നം
ഇതിനായി ഒരു റാപ്പർ ഫംഗ്ഷൻ ഉപയോഗിക്കുക ചിഹ്നം. നിർവചിക്കാത്ത ഏതെങ്കിലും റഫറൻസ്
ചിഹ്നം "__wrap_ ആയി പരിഹരിക്കപ്പെടുംചിഹ്നം". ഏതെങ്കിലും നിർവചിക്കാത്തത്
റഫറൻസ് "__റിയൽ_ചിഹ്നം" എന്ന് പരിഹരിക്കപ്പെടും ചിഹ്നം.
ഒരു സിസ്റ്റം ഫംഗ്ഷനുവേണ്ടി ഒരു റാപ്പർ നൽകാൻ ഇത് ഉപയോഗിക്കാം. ദി
റാപ്പർ ഫംഗ്ഷൻ "__wrap_ എന്ന് വിളിക്കണംചിഹ്നം". അത് ആഗ്രഹിക്കുന്നുവെങ്കിൽ
സിസ്റ്റം ഫംഗ്ഷനെ വിളിക്കുക, അത് "__real_ എന്ന് വിളിക്കണംചിഹ്നം".
ഒരു നിസ്സാര ഉദാഹരണം ഇതാ:
അസാധു *
__wrap_malloc (size_t c)
{
printf ("malloc called with %zu\n", c);
റിട്ടേൺ __real_malloc (c);
}
നിങ്ങൾ ഈ ഫയലുമായി മറ്റ് കോഡ് ലിങ്ക് ചെയ്യുകയാണെങ്കിൽ --പൊതിയുക malloc, പിന്നെ എല്ലാം
"malloc" എന്നതിലേക്കുള്ള കോളുകൾ പകരം "__wrap_malloc" എന്ന ഫംഗ്ഷനെ വിളിക്കും.
"__wrap_malloc" എന്നതിലെ "__real_malloc" എന്നതിലേക്കുള്ള കോൾ യഥാർത്ഥമായതിനെ വിളിക്കും
"malloc" ഫംഗ്ഷൻ.
ഒരു "__real_malloc" ഫംഗ്ഷനും നൽകാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം
ഇല്ലാതെ ലിങ്കുകൾ --പൊതിയുക ഓപ്ഷൻ വിജയിക്കും. നിങ്ങൾ ഇത് ചെയ്യുകയാണെങ്കിൽ, നിങ്ങൾ
"__real_malloc" എന്നതിന്റെ നിർവചനം അതേ ഫയലിൽ ഉൾപ്പെടുത്തരുത്
"__wrap_malloc" ആയി; നിങ്ങൾ അങ്ങനെ ചെയ്യുകയാണെങ്കിൽ, അസംബ്ലർക്ക് കോൾ പരിഹരിച്ചേക്കാം
ലിങ്കർക്ക് അത് "malloc" എന്നതിലേക്ക് പൊതിയാൻ അവസരം ലഭിക്കുന്നതിന് മുമ്പ്.
--eh-frame-hdr
".eh_frame_hdr" വിഭാഗത്തിന്റെയും ELF-ഉം സൃഷ്ടിക്കാൻ അഭ്യർത്ഥിക്കുക
"PT_GNU_EH_FRAME" സെഗ്മെന്റ് തലക്കെട്ട്.
--no-ld-generated-unwind-info
ലിങ്കർ സൃഷ്ടിച്ച ".eh_frame" അൺവൈൻഡ് വിവരം സൃഷ്ടിക്കാൻ അഭ്യർത്ഥിക്കുക
PLT പോലുള്ള കോഡ് വിഭാഗങ്ങൾ. ലിങ്കർ ആണെങ്കിൽ ഈ ഓപ്ഷൻ ഡിഫോൾട്ടായി ഓണാണ്
സൃഷ്ടിച്ച അൺവൈൻഡ് വിവരങ്ങൾ പിന്തുണയ്ക്കുന്നു.
--new-dtags-പ്രവർത്തനക്ഷമമാക്കുക
--new-dtags-പ്രവർത്തനരഹിതമാക്കുക
ഈ ലിങ്കറിന് ELF-ൽ പുതിയ ഡൈനാമിക് ടാഗുകൾ സൃഷ്ടിക്കാൻ കഴിയും. എന്നാൽ മൂത്തത്
ELF സിസ്റ്റങ്ങൾക്ക് അവ മനസ്സിലാകണമെന്നില്ല. നിങ്ങൾ വ്യക്തമാക്കിയാൽ
--new-dtags-പ്രവർത്തനക്ഷമമാക്കുക, പുതിയ ഡൈനാമിക് ടാഗുകൾ ആവശ്യാനുസരണം സൃഷ്ടിക്കപ്പെടും
കൂടാതെ പഴയ ഡൈനാമിക് ടാഗുകൾ ഒഴിവാക്കപ്പെടും. നിങ്ങൾ വ്യക്തമാക്കിയാൽ
--new-dtags-പ്രവർത്തനരഹിതമാക്കുക, പുതിയ ഡൈനാമിക് ടാഗുകളൊന്നും സൃഷ്ടിക്കില്ല. എഴുതിയത്
സ്ഥിരസ്ഥിതിയായി, പുതിയ ഡൈനാമിക് ടാഗുകൾ സൃഷ്ടിച്ചിട്ടില്ല. അത് ശ്രദ്ധിക്കുക
ELF സിസ്റ്റങ്ങൾക്ക് മാത്രമേ ഓപ്ഷനുകൾ ലഭ്യമാകൂ.
--hash-size=അക്കം
ലിങ്കറിന്റെ ഹാഷ് ടേബിളുകളുടെ ഡിഫോൾട്ട് സൈസ് ഒരു പ്രൈം നമ്പറായി സജ്ജീകരിക്കുക
അടുത്ത് അക്കം. ഈ മൂല്യം കൂട്ടുന്നത് ദൈർഘ്യം കുറയ്ക്കും
അതിന്റെ ചുമതലകൾ നിർവഹിക്കാൻ ലിങ്കർ എടുക്കുന്ന സമയം, ചെലവിൽ
ലിങ്കറിന്റെ മെമ്മറി ആവശ്യകതകൾ വർദ്ധിപ്പിക്കുന്നു. അതുപോലെ കുറയ്ക്കുന്നു
ഈ മൂല്യത്തിന് മെമ്മറി ആവശ്യകതകൾ കുറയ്ക്കാൻ കഴിയും
വേഗത.
--hash-style=ശൈലി
ലിങ്കറിന്റെ ഹാഷ് പട്ടിക(കൾ) തരം സജ്ജമാക്കുക. ശൈലി ഒന്നുകിൽ "sysv" ആകാം
ക്ലാസിക് ELF ".hash" വിഭാഗത്തിനായി, പുതിയ ശൈലിയിലുള്ള GNU ന് "gnu"
".gnu.hash" വിഭാഗം അല്ലെങ്കിൽ ക്ലാസിക് ELF ".hash" കൂടാതെ "രണ്ടും"
പുതിയ ശൈലിയിലുള്ള GNU ".gnu.hash" ഹാഷ് പട്ടികകൾ. സ്ഥിരസ്ഥിതി "sysv" ആണ്.
--compress-debug-sections=ഒന്നുമില്ല
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
ELF പ്ലാറ്റ്ഫോമുകളിൽ, DWARF ഡീബഗ് വിഭാഗങ്ങളെ ഈ ഓപ്ഷനുകൾ നിയന്ത്രിക്കുന്നു
zlib ഉപയോഗിച്ച് കംപ്രസ് ചെയ്യുന്നു. --compress-debug-sections=ഒന്നുമില്ല ഇല്ല
DWARF ഡീബഗ് വിഭാഗങ്ങൾ കംപ്രസ് ചെയ്യുക. --compress-debug-sections=zlib-gnu
DWARF ഡീബഗ് വിഭാഗങ്ങൾ കംപ്രസ്സുചെയ്യുകയും ഡീബഗ് വിഭാഗത്തിന്റെ പേരുകൾ എന്നതിലേക്ക് പുനർനാമകരണം ചെയ്യുകയും ചെയ്യുന്നു
ആരംഭിക്കുക .zdebug ഇതിനുപകരമായി .ഡീബഗ്.
--compress-debug-sections=zlib ഒപ്പം
--compress-debug-sections=zlib-gabi DWARF ഡീബഗ് വിഭാഗങ്ങൾ കംപ്രസ് ചെയ്യുക
ELF ABI-യിൽ നിന്ന് SHF_COMPRESSED ഉപയോഗിച്ച്. സ്ഥിരസ്ഥിതി സ്വഭാവം വ്യത്യാസപ്പെടുന്നു
ഉൾപ്പെട്ടിരിക്കുന്ന ടാർഗെറ്റും ഉപയോഗിച്ച കോൺഫിഗർ ഓപ്ഷനുകളും അനുസരിച്ച്
ടൂൾചെയിൻ നിർമ്മിക്കാൻ. പരിശോധനയിലൂടെ സ്ഥിരസ്ഥിതി നിർണ്ണയിക്കാനാകും
ലിങ്കറിൽ നിന്നുള്ള ഔട്ട്പുട്ട് --സഹായിക്കൂ ഓപ്ഷൻ.
--കുറയ്ക്കുക-മെമ്മറി-ഓവർഹെഡുകൾ
ഈ ഓപ്ഷൻ ld റൺടൈമിൽ മെമ്മറി ആവശ്യകതകൾ കുറയ്ക്കുന്നു
ലിങ്കിംഗ് വേഗതയുടെ ചെലവ്. പഴയത് തിരഞ്ഞെടുക്കുന്നതിനാണ് ഇത് അവതരിപ്പിച്ചത്
ലിങ്ക് മാപ്പ് ഫയൽ സൃഷ്ടിക്കുന്നതിനുള്ള O(n^2) അൽഗോരിതം, പുതിയതിനേക്കാൾ
ചിഹ്ന സംഭരണത്തിനായി ഏകദേശം 40% കൂടുതൽ മെമ്മറി ഉപയോഗിക്കുന്ന O(n) അൽഗോരിതം.
സ്വിച്ചിന്റെ മറ്റൊരു പ്രഭാവം ഡിഫോൾട്ട് ഹാഷ് ടേബിൾ വലുപ്പം സജ്ജമാക്കുക എന്നതാണ്
1021-ലേക്ക്, ഇത് വീണ്ടും ദൈർഘ്യം കൂട്ടുന്നതിനുള്ള ചെലവിൽ മെമ്മറി ലാഭിക്കുന്നു
ലിങ്കറിന്റെ പ്രവർത്തന സമയം. എന്നിരുന്നാലും ഇത് ചെയ്യപ്പെടുന്നില്ല --ഹാഷ് വലിപ്പം
സ്വിച്ച് ഉപയോഗിച്ചു.
ദി --കുറയ്ക്കുക-മെമ്മറി-ഓവർഹെഡുകൾ പ്രവർത്തനക്ഷമമാക്കാൻ സ്വിച്ചും ഉപയോഗിക്കാം
ലിങ്കറിന്റെ ഭാവി പതിപ്പുകളിലെ മറ്റ് ഇടപാടുകൾ.
--ബിൽഡ്-ഐഡി
--build-id=ശൈലി
ഒരു ".note.gnu.build-id" ELF നോട്ട് വിഭാഗം സൃഷ്ടിക്കാൻ അഭ്യർത്ഥിക്കുക അല്ലെങ്കിൽ
ഒരു ".buildid" COFF വിഭാഗം. കുറിപ്പിന്റെ ഉള്ളടക്കം അദ്വിതീയമാണ്
ഈ ലിങ്ക് ചെയ്ത ഫയൽ തിരിച്ചറിയുന്ന ബിറ്റുകൾ. ശൈലി 128 ഉപയോഗിക്കുന്നതിന് "uuid" ആകാം
ക്രമരഹിതമായ ബിറ്റുകൾ, മാനദണ്ഡത്തിൽ 1-ബിറ്റ് SHA160 ഹാഷ് ഉപയോഗിക്കുന്നതിന് "sha1"
ഔട്ട്പുട്ട് ഉള്ളടക്കത്തിന്റെ ഭാഗങ്ങൾ, 5-ബിറ്റ് MD128 ഹാഷ് ഉപയോഗിക്കുന്നതിന് "md5"
ഔട്ട്പുട്ട് ഉള്ളടക്കങ്ങളുടെ മാനദണ്ഡ ഭാഗങ്ങൾ, അല്ലെങ്കിൽ "0xഹെക്സ്സ്ട്രിംഗ്" ഉപയോഗിക്കാൻ
ഹെക്സാഡെസിമലിന്റെ ഇരട്ട സംഖ്യയായി വ്യക്തമാക്കിയ തിരഞ്ഞെടുത്ത ബിറ്റ് സ്ട്രിംഗ്
അക്കങ്ങൾ (അക്ക ജോഡികൾക്കിടയിലുള്ള "-", ":" പ്രതീകങ്ങൾ അവഗണിക്കപ്പെടുന്നു).
If ശൈലി ഒഴിവാക്കിയിരിക്കുന്നു, "sha1" ഉപയോഗിക്കുന്നു.
"md5", "sha1" ശൈലികൾ എല്ലായ്പ്പോഴും ഒരു ഐഡന്റിഫയർ നിർമ്മിക്കുന്നു
ഒരു സമാന ഔട്ട്പുട്ട് ഫയലിൽ സമാനമാണ്, എന്നാൽ എല്ലാവരിലും അദ്വിതീയമായിരിക്കും
സമാനമല്ലാത്ത ഔട്ട്പുട്ട് ഫയലുകൾ. എ ആയി താരതമ്യം ചെയ്യാൻ ഉദ്ദേശിക്കുന്നില്ല
ഫയലിന്റെ ഉള്ളടക്കങ്ങൾക്കായി ചെക്ക്സം. ഒരു ലിങ്ക് ചെയ്ത ഫയൽ മാറ്റിയേക്കാം
പിന്നീട് മറ്റ് ടൂളുകൾ വഴി, എന്നാൽ ബിൽഡ് ഐഡി ബിറ്റ് സ്ട്രിംഗ് തിരിച്ചറിയുന്നു
യഥാർത്ഥ ലിങ്ക് ചെയ്ത ഫയൽ മാറില്ല.
"ഒന്നുമില്ല" എന്നതിനായി കടന്നുപോകുന്നു ശൈലി ഏതെങ്കിലും "--build-id"-ൽ നിന്നുള്ള ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കുന്നു
കമാൻഡ് ലൈനിൽ നേരത്തെയുള്ള ഓപ്ഷനുകൾ.
i386 PE ലിങ്കർ പിന്തുണയ്ക്കുന്നു - പങ്കിട്ടു ഓപ്ഷൻ, അത് ഔട്ട്പുട്ടിന് കാരണമാകുന്നു
ഒരു സാധാരണ ലൈബ്രറിക്ക് പകരം ഡൈനാമിക് ലിങ്ക്ഡ് ലൈബ്രറി (DLL) ആകാൻ
എക്സിക്യൂട്ടബിൾ. നിങ്ങൾ ഇത് ഉപയോഗിക്കുമ്പോൾ ഔട്ട്പുട്ടിന് "*.dll" എന്ന് പേരിടണം
ഓപ്ഷൻ. കൂടാതെ, ലിങ്കർ സ്റ്റാൻഡേർഡ് "*.def" പൂർണ്ണമായും പിന്തുണയ്ക്കുന്നു.
ഫയലുകൾ, ഒരു ഒബ്ജക്റ്റ് പോലെ ലിങ്കർ കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയേക്കാം
ഫയൽ (വാസ്തവത്തിൽ, ഇത് ആർക്കൈവുകളിൽ നിന്ന് ചിഹ്നങ്ങൾ എക്സ്പോർട്ടുചെയ്യുന്നതിന് മുമ്പായിരിക്കണം
ഒരു സാധാരണ ഒബ്ജക്റ്റ് ഫയൽ പോലെ അവ ലിങ്ക് ചെയ്യപ്പെടുമെന്ന് ഉറപ്പാക്കുക).
എല്ലാ ടാർഗെറ്റുകൾക്കും പൊതുവായുള്ള ഓപ്ഷനുകൾക്ക് പുറമേ, i386 PE ലിങ്കർ
i386-ന് മാത്രമുള്ള അധിക കമാൻഡ് ലൈൻ ഓപ്ഷനുകൾ പിന്തുണയ്ക്കുന്നു
PE ലക്ഷ്യം. മൂല്യങ്ങൾ എടുക്കുന്ന ഓപ്ഷനുകൾ അവയുടെ മൂല്യങ്ങളിൽ നിന്ന് വേർപെടുത്തിയേക്കാം
ഒന്നുകിൽ ഒരു ഇടം അല്ലെങ്കിൽ തുല്യ ചിഹ്നം വഴി.
--add-stdcall-alias
നൽകിയിട്ടുണ്ടെങ്കിൽ, ഒരു stdcall സഫിക്സുള്ള ചിഹ്നങ്ങൾ (@nn) ആയി കയറ്റുമതി ചെയ്യും-
കൂടാതെ സ്ട്രിപ്പ് ചെയ്ത പ്രത്യയത്തോടുകൂടിയാണ്. [ഈ ഓപ്ഷൻ പ്രത്യേകമാണ്
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ട്]
--ബേസ്-ഫയൽ ഫയല്
ഉപയോഗം ഫയല് അടിസ്ഥാന വിലാസങ്ങൾ സംരക്ഷിക്കേണ്ട ഫയലിന്റെ പേരായി
DLL-കൾ സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ എല്ലാ സ്ഥലമാറ്റങ്ങളുടെയും dlltool.
[ഇതൊരു i386 PE നിർദ്ദിഷ്ട ഓപ്ഷനാണ്]
--dll
ഒരു സാധാരണ എക്സിക്യൂട്ടബിളിന് പകരം ഒരു DLL സൃഷ്ടിക്കുക. നിങ്ങൾക്കും ഉപയോഗിക്കാം
- പങ്കിട്ടു അല്ലെങ്കിൽ തന്നിരിക്കുന്ന ".def" ഫയലിൽ ഒരു "LIBRARY" വ്യക്തമാക്കുക. [ഈ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ് ഓപ്ഷൻ]
--ലോംഗ്-സെക്ഷൻ-നാമങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുക
--ദീർഘമായ വിഭാഗ-നാമങ്ങൾ പ്രവർത്തനരഹിതമാക്കുക
COFF ഒബ്ജക്റ്റ് ഫോർമാറ്റിന്റെ PE വകഭേദങ്ങൾ ഒരു വിപുലീകരണം ചേർക്കുന്നു
എട്ട് പ്രതീകങ്ങളിൽ കൂടുതൽ നീളമുള്ള വിഭാഗങ്ങളുടെ പേരുകൾ ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു
COFF-നുള്ള സാധാരണ പരിധി. സ്ഥിരസ്ഥിതിയായി, ഈ പേരുകൾ മാത്രമേ അനുവദിക്കൂ
ഒബ്ജക്റ്റ് ഫയലുകൾ, പൂർണ്ണമായി ലിങ്ക് ചെയ്ത എക്സിക്യൂട്ടബിൾ ഇമേജുകൾ വഹിക്കാത്തതിനാൽ
നീളമേറിയ പേരുകൾ പിന്തുണയ്ക്കാൻ COFF സ്ട്രിംഗ് ടേബിൾ ആവശ്യമാണ്. ഒരു ഗ്നു എന്ന നിലയിൽ
വിപുലീകരണം, എക്സിക്യൂട്ടബിൾ ഇമേജുകളിൽ അവയുടെ ഉപയോഗം അനുവദിക്കുന്നത് സാധ്യമാണ്
അതുപോലെ, അല്ലെങ്കിൽ (ഒരുപക്ഷേ അർത്ഥരഹിതമായി!) അത് ഒബ്ജക്റ്റിൽ അനുവദിക്കാതിരിക്കുക
ഫയലുകൾ, ഈ രണ്ട് ഓപ്ഷനുകൾ ഉപയോഗിച്ച്. എക്സിക്യൂട്ടബിൾ ഇമേജുകൾ സൃഷ്ടിച്ചു
ഈ നീളമുള്ള വിഭാഗത്തിന്റെ പേരുകൾ അൽപ്പം നിലവാരമില്ലാത്തതും ചുമക്കുന്നതുമാണ്
അവർ ഒരു സ്ട്രിംഗ് ടേബിൾ ചെയ്യുന്നതുപോലെ, എപ്പോൾ ആശയക്കുഴപ്പമുണ്ടാക്കുന്ന ഔട്ട്പുട്ട് സൃഷ്ടിച്ചേക്കാം
ഫയൽ വ്യൂവറുകൾ പോലെയുള്ള നോൺ-ഗ്നു പിഇ-അവെയർ ടൂളുകൾ ഉപയോഗിച്ച് പരിശോധിച്ചു
ഡമ്പറുകൾ. എന്നിരുന്നാലും, ജിഡിബി PE നീളമുള്ള വിഭാഗ നാമങ്ങളുടെ ഉപയോഗത്തെ ആശ്രയിക്കുന്നു
ഒരു എക്സിക്യൂട്ടബിൾ ഇമേജിൽ ഡ്വാർഫ്-2 ഡീബഗ് വിവര വിഭാഗങ്ങൾ കണ്ടെത്താൻ
റൺടൈമിൽ, അതിനാൽ കമാൻഡിൽ ഒരു ഓപ്ഷനും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ-
ലൈൻ, ld ഡിഫോൾട്ടിനെ അസാധുവാക്കിക്കൊണ്ട് നീണ്ട വിഭാഗ നാമങ്ങൾ പ്രവർത്തനക്ഷമമാക്കും
ഡീബഗ്ഗിന്റെ സാന്നിധ്യം കണ്ടെത്തുമ്പോൾ സാങ്കേതികമായി ശരിയായ പെരുമാറ്റം
എക്സിക്യൂട്ടബിൾ ഇമേജ് ലിങ്ക് ചെയ്യുമ്പോൾ, സ്ട്രിപ്പ് ചെയ്യാതെയുള്ള വിവരങ്ങൾ
ചിഹ്നങ്ങൾ. [ഈ ഓപ്ഷൻ എല്ലാ PE ടാർഗെറ്റുചെയ്ത പോർട്ടുകൾക്കും സാധുതയുള്ളതാണ്
ലിങ്കർ]
--enable-stdcall-fixup
--disable-stdcall-fixup
ലിങ്ക് പരിഹരിക്കാൻ കഴിയാത്ത ഒരു ചിഹ്നം കണ്ടെത്തിയാൽ, അത് ശ്രമിക്കും
മറ്റൊരു നിർവചിക്കപ്പെട്ട ചിഹ്നത്തിനായി നോക്കി "അവ്യക്തമായ ലിങ്കിംഗ്" ചെയ്യാൻ
ചിഹ്ന നാമത്തിന്റെ ഫോർമാറ്റിൽ മാത്രം വ്യത്യാസപ്പെട്ടിരിക്കുന്നു (cdecl vs stdcall)
ഒപ്പം പൊരുത്തവുമായി ലിങ്ക് ചെയ്തുകൊണ്ട് ആ ചിഹ്നം പരിഹരിക്കും. ഉദാഹരണത്തിന്,
നിർവചിക്കാത്ത ചിഹ്നം "_foo" ഫംഗ്ഷനുമായി ലിങ്ക് ചെയ്തിരിക്കാം
"_foo@12", അല്ലെങ്കിൽ നിർവചിക്കാത്ത ചിഹ്നം "_bar@16" എന്നതുമായി ലിങ്ക് ചെയ്തിരിക്കാം
ഫംഗ്ഷൻ "_ബാർ". ലിങ്കർ ഇത് ചെയ്യുമ്പോൾ, അത് ഒരു മുന്നറിയിപ്പ് പ്രിന്റ് ചെയ്യുന്നു,
കാരണം, ഇത് സാധാരണയായി ലിങ്ക് ചെയ്യുന്നതിൽ പരാജയപ്പെടണം, പക്ഷേ ചിലപ്പോൾ ഇറക്കുമതി ചെയ്യും
മൂന്നാം കക്ഷി dll-കളിൽ നിന്ന് സൃഷ്ടിച്ച ലൈബ്രറികൾക്ക് ഈ സവിശേഷത ആവശ്യമായി വന്നേക്കാം
ഉപയോഗയോഗ്യമാകും. നിങ്ങൾ വ്യക്തമാക്കിയാൽ --enable-stdcall-fixup, ഈ സവിശേഷതയാണ്
പൂർണ്ണമായും പ്രവർത്തനക്ഷമമാക്കുകയും മുന്നറിയിപ്പുകൾ അച്ചടിക്കുകയും ചെയ്തിട്ടില്ല. നിങ്ങൾ വ്യക്തമാക്കിയാൽ
--disable-stdcall-fixup, ഈ ഫീച്ചർ അപ്രാപ്തമാക്കിയിരിക്കുന്നു
പൊരുത്തക്കേടുകൾ പിശകുകളായി കണക്കാക്കപ്പെടുന്നു. [ഈ ഓപ്ഷൻ നിർദ്ദിഷ്ടമാണ്
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിലേക്ക്]
--leading-underscore
--no-leading-underscore
മിക്ക ടാർഗെറ്റുകൾക്കും ഡിഫോൾട്ട് ചിഹ്ന-പ്രിഫിക്സ് ഒരു അടിവരയാണ്
ലക്ഷ്യത്തിന്റെ വിവരണത്തിൽ നിർവചിച്ചിരിക്കുന്നു. ഈ ഓപ്ഷൻ വഴി അത് സാധ്യമാണ്
ഡിഫോൾട്ട് അണ്ടർസ്കോർ ചിഹ്ന-പ്രിഫിക്സ് പ്രവർത്തനരഹിതമാക്കുക/പ്രവർത്തനക്ഷമമാക്കുക.
--എക്സ്പോർട്ട്-എല്ലാ-ചിഹ്നങ്ങളും
നൽകിയിട്ടുണ്ടെങ്കിൽ, ഒബ്ജക്റ്റുകളിലെ എല്ലാ ആഗോള ചിഹ്നങ്ങളും ഒരു DLL നിർമ്മിക്കാൻ ഉപയോഗിക്കുന്നു
DLL കയറ്റുമതി ചെയ്യും. എങ്കിൽ ഇതാണ് ഡിഫോൾട്ട് എന്ന കാര്യം ശ്രദ്ധിക്കുക
അല്ലെങ്കിൽ കയറ്റുമതി ചെയ്ത ചിഹ്നങ്ങൾ ഉണ്ടാകില്ല. ചിഹ്നങ്ങൾ ആയിരിക്കുമ്പോൾ
DEF ഫയലുകൾ വഴി പ്രത്യക്ഷമായി കയറ്റുമതി ചെയ്യുകയോ അല്ലെങ്കിൽ ഇതിലൂടെ പരോക്ഷമായി കയറ്റുമതി ചെയ്യുകയോ ചെയ്യുന്നു
ഫംഗ്ഷൻ ആട്രിബ്യൂട്ടുകൾ, മറ്റൊന്നും കയറ്റുമതി ചെയ്യരുത് എന്നതാണ് സ്ഥിരസ്ഥിതി
ഈ ഓപ്ഷൻ നൽകിയിട്ടില്ലെങ്കിൽ. "DllMain@12" എന്ന ചിഹ്നങ്ങൾ ശ്രദ്ധിക്കുക,
"DllEntryPoint@0", "DllMainCRTSstartup@12", "impure_ptr" എന്നിവ ചെയ്യും
സ്വയമേവ കയറ്റുമതി ചെയ്യരുത്. കൂടാതെ, മറ്റുള്ളവയിൽ നിന്ന് ഇറക്കുമതി ചെയ്ത ചിഹ്നങ്ങൾ
DLL-കൾ വീണ്ടും കയറ്റുമതി ചെയ്യില്ല, DLL-കൾ വ്യക്തമാക്കുന്ന ചിഹ്നങ്ങളും
"_head_" എന്നതിൽ തുടങ്ങുന്നതോ അവസാനിക്കുന്നതോ ആയ ആന്തരിക ലേഔട്ട്
"_നാമം" ഉപയോഗിച്ച്. കൂടാതെ, "libgcc", "libstd++" എന്നിവയിൽ നിന്ന് ചിഹ്നങ്ങളൊന്നുമില്ല,
"libmingw32", അല്ലെങ്കിൽ "crtX.o" കയറ്റുമതി ചെയ്യും. പേരുകളുള്ള ചിഹ്നങ്ങൾ
സഹായിക്കാൻ "__rtti_" അല്ലെങ്കിൽ "__builtin_" ഉപയോഗിച്ച് ആരംഭിക്കുന്നത് കയറ്റുമതി ചെയ്യില്ല
C++ DLL-കൾക്കൊപ്പം. അവസാനമായി, സിഗ്വിൻ-ന്റെ വിപുലമായ ഒരു ലിസ്റ്റ് ഉണ്ട്.
കയറ്റുമതി ചെയ്യാത്ത സ്വകാര്യ ചിഹ്നങ്ങൾ (വ്യക്തമായും, ഇത് ബാധകമാണ്
സിഗ്വിൻ ടാർഗെറ്റുകൾക്കായി DLL-കൾ നിർമ്മിക്കുമ്പോൾ). ഈ സിഗ്വിൻ-ഒഴിവാക്കലുകൾ ഇവയാണ്:
"_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", "environ". [ഈ ഓപ്ഷൻ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ്]
--ഒഴിവാക്കുക-ചിഹ്നങ്ങൾ ചിഹ്നം,ചിഹ്നം...
സ്വയമേവ പാടില്ലാത്ത ചിഹ്നങ്ങളുടെ ഒരു ലിസ്റ്റ് വ്യക്തമാക്കുന്നു
കയറ്റുമതി ചെയ്തു. ചിഹ്ന നാമങ്ങൾ കോമകളോ കോളണുകളോ ഉപയോഗിച്ച് വേർതിരിച്ചേക്കാം.
[ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--എല്ലാ ചിഹ്നങ്ങളും ഒഴിവാക്കുക
ചിഹ്നങ്ങളൊന്നും സ്വയമേവ കയറ്റുമതി ചെയ്യരുതെന്ന് വ്യക്തമാക്കുന്നു. [ഈ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ് ഓപ്ഷൻ]
--ഫയൽ-വിന്യാസം
ഫയൽ വിന്യാസം വ്യക്തമാക്കുക. ഫയലിലെ വിഭാഗങ്ങൾ എപ്പോഴും ആരംഭിക്കും
ഈ സംഖ്യയുടെ ഗുണിതങ്ങളായ ഫയൽ ഓഫ്സെറ്റുകളിൽ. ഇത് ഡിഫോൾട്ടാണ്
512-ലേക്ക്. [ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--കൂമ്പാരം കരുതിവയ്ക്കുക
--കൂമ്പാരം കരുതിവയ്ക്കുക,സമർപ്പിക്കുക
റിസർവ് ചെയ്യാനുള്ള മെമ്മറിയുടെ ബൈറ്റുകളുടെ എണ്ണം വ്യക്തമാക്കുക (ഓപ്ഷണലായി
പ്രതിബദ്ധത) ഈ പ്രോഗ്രാമിന്റെ കൂമ്പാരമായി ഉപയോഗിക്കും. സ്ഥിരസ്ഥിതി 1MB ആണ്
സംവരണം, 4K പ്രതിബദ്ധത. [ഈ ഐച്ഛികം i386 PE-യുടെ പ്രത്യേകതയാണ്
ലിങ്കറിന്റെ ടാർഗെറ്റഡ് പോർട്ട്]
--ഇമേജ്-ബേസ് മൂല്യം
ഉപയോഗം മൂല്യം നിങ്ങളുടെ പ്രോഗ്രാമിന്റെ അടിസ്ഥാന വിലാസം അല്ലെങ്കിൽ dll. ഇതാണ്
നിങ്ങളുടെ പ്രോഗ്രാം അല്ലെങ്കിൽ dll ഉപയോഗിക്കുമ്പോൾ ഏറ്റവും കുറഞ്ഞ മെമ്മറി ലൊക്കേഷൻ
ലോഡ് ചെയ്തിരിക്കുന്നു. സ്ഥലം മാറ്റേണ്ടതിന്റെ ആവശ്യകത കുറയ്ക്കുന്നതിനും പ്രകടനം മെച്ചപ്പെടുത്തുന്നതിനും
നിങ്ങളുടെ dll-കളിൽ ഓരോന്നിനും തനതായ അടിസ്ഥാന വിലാസം ഉണ്ടായിരിക്കണം, അല്ല
മറ്റേതെങ്കിലും dlls ഓവർലാപ്പ് ചെയ്യുക. എക്സിക്യൂട്ടബിളുകൾക്ക് ഡിഫോൾട്ട് 0x400000 ആണ്,
dlls-ന് 0x10000000. [ഈ ഐച്ഛികം i386 PE-യുടെ പ്രത്യേകതയാണ്
ലിങ്കറിന്റെ ടാർഗെറ്റഡ് പോർട്ട്]
--കൊല്ലുക
നൽകിയിട്ടുണ്ടെങ്കിൽ, stdcall സഫിക്സുകൾ (@nn) ചിഹ്നങ്ങളിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും
അവ കയറ്റുമതി ചെയ്യുന്നതിനുമുമ്പ്. [ഈ ഐച്ഛികം i386 PE-യുടെ പ്രത്യേകതയാണ്
ലിങ്കറിന്റെ ടാർഗെറ്റഡ് പോർട്ട്]
--വലിയ വിലാസം-അറിയുക
നൽകിയിട്ടുണ്ടെങ്കിൽ, "സ്വഭാവങ്ങൾ" എന്ന ഫീൽഡിലെ ഉചിതമായ ബിറ്റ്
ഈ എക്സിക്യൂട്ടബിൾ പിന്തുണയ്ക്കുന്നുവെന്ന് സൂചിപ്പിക്കുന്നതിനാണ് COFF തലക്കെട്ട് സജ്ജീകരിച്ചിരിക്കുന്നത്
2 ജിഗാബൈറ്റിൽ കൂടുതലുള്ള വെർച്വൽ വിലാസങ്ങൾ. ഇതിൽ ഉപയോഗിക്കണം
/3GB അല്ലെങ്കിൽ /USERVA= എന്നിവയുമായി സംയോജിപ്പിക്കുകമൂല്യം മെഗാബൈറ്റ് സ്വിച്ച് ഇൻ
BOOT.INI-യുടെ "[ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ]" വിഭാഗം. അല്ലെങ്കിൽ, ഈ ബിറ്റ്
യാതൊരു ഫലവുമില്ല. [ഈ ഓപ്ഷൻ PE ടാർഗെറ്റുചെയ്ത പോർട്ടുകൾക്ക് പ്രത്യേകമാണ്
ലിങ്കർ]
--disable-large-address-aware
മുമ്പത്തേതിന്റെ പ്രഭാവം പഴയപടിയാക്കുന്നു --വലിയ വിലാസം-അറിയുക ഓപ്ഷൻ.
എങ്കിൽ ഇത് ഉപയോഗപ്രദമാണ് --വലിയ വിലാസം-അറിയുക എപ്പോഴും സജ്ജീകരിച്ചിരിക്കുന്നു
കംപൈലർ ഡ്രൈവർ (ഉദാ: Cygwin gcc) കൂടാതെ എക്സിക്യൂട്ടബിൾ അല്ല
2 ജിഗാബൈറ്റിൽ കൂടുതലുള്ള വെർച്വൽ വിലാസങ്ങളെ പിന്തുണയ്ക്കുക. [ഈ ഓപ്ഷൻ
ലിങ്കറിന്റെ PE ടാർഗെറ്റുചെയ്ത പോർട്ടുകൾക്ക് പ്രത്യേകമാണ്]
--മേജർ-ഇമേജ്-പതിപ്പ് മൂല്യം
"ഇമേജ് പതിപ്പിന്റെ" പ്രധാന നമ്പർ സജ്ജമാക്കുന്നു. 1-ലേക്കുള്ള ഡിഫോൾട്ടുകൾ.
[ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--major-os-version മൂല്യം
"OS പതിപ്പിന്റെ" പ്രധാന നമ്പർ സജ്ജമാക്കുന്നു. സ്ഥിരസ്ഥിതികൾ 4. [ഇത്
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ് ഓപ്ഷൻ]
--major-subsystem-version മൂല്യം
"സബ്സിസ്റ്റം പതിപ്പിന്റെ" പ്രധാന നമ്പർ സജ്ജമാക്കുന്നു. സ്ഥിരസ്ഥിതികൾ 4 ലേക്ക്.
[ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--മൈനർ-ഇമേജ്-പതിപ്പ് മൂല്യം
"ഇമേജ് പതിപ്പിന്റെ" മൈനർ നമ്പർ സജ്ജമാക്കുന്നു. 0 ലേക്ക് ഡിഫോൾട്ടുകൾ.
[ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--minor-os-version മൂല്യം
"OS പതിപ്പിന്റെ" മൈനർ നമ്പർ സജ്ജമാക്കുന്നു. സ്ഥിരസ്ഥിതികൾ 0. [ഇത്
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ് ഓപ്ഷൻ]
--മൈനർ-സബ്സിസ്റ്റം-പതിപ്പ് മൂല്യം
"സബ്സിസ്റ്റം പതിപ്പിന്റെ" മൈനർ നമ്പർ സജ്ജമാക്കുന്നു. 0 ലേക്ക് ഡിഫോൾട്ടുകൾ.
[ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--output-def ഫയല്
ലിങ്കർ ഫയൽ സൃഷ്ടിക്കും ഫയല് അതിൽ ഒരു DEF ഫയൽ അടങ്ങിയിരിക്കും
ലിങ്കർ സൃഷ്ടിക്കുന്ന DLL-ന് അനുസൃതമായി. ഈ DEF ഫയൽ
(ഇത് "*.def" എന്ന് വിളിക്കണം) ഒരു ഇറക്കുമതി സൃഷ്ടിക്കാൻ ഉപയോഗിക്കാം
"dlltool" ഉള്ള ലൈബ്രറി അല്ലെങ്കിൽ ഒരു റഫറൻസായി ഉപയോഗിക്കാം
സ്വയമേവ അല്ലെങ്കിൽ പരോക്ഷമായി കയറ്റുമതി ചെയ്ത ചിഹ്നങ്ങൾ. [ഈ ഓപ്ഷൻ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകം]
--ഔട്ട്-ഇംപ്ലിബ് ഫയല്
ലിങ്കർ ഫയൽ സൃഷ്ടിക്കും ഫയല് ഒരു ഇറക്കുമതി അടങ്ങിയിരിക്കും
ലിങ്കർ സൃഷ്ടിക്കുന്ന DLL-ന് അനുയോജ്യമായ lib. ഈ ഇറക്കുമതി
lib (ഇതിനെ "*.dll.a" അല്ലെങ്കിൽ "*.a" എന്ന് വിളിക്കണം, ലിങ്ക് ചെയ്യാൻ ഉപയോഗിക്കാം
സൃഷ്ടിച്ച DLL-ന് എതിരായ ക്ലയന്റുകൾ; ഈ സ്വഭാവം അത് സാധ്യമാക്കുന്നു
ഒരു പ്രത്യേക "dlltool" ഇറക്കുമതി ലൈബ്രറി സൃഷ്ടിക്കൽ ഘട്ടം ഒഴിവാക്കുന്നതിന്. [ഈ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ് ഓപ്ഷൻ]
--ഓട്ടോ-ഇമേജ്-ബേസ് പ്രവർത്തനക്ഷമമാക്കുക
--enable-auto-image-base=മൂല്യം
DLL-കൾക്കുള്ള ഇമേജ് ബേസ് സ്വയമേവ തിരഞ്ഞെടുക്കുക, ഓപ്ഷണലായി ആരംഭിക്കുക
അടിത്തറയുള്ളത് മൂല്യം, "--image-base" ഉപയോഗിച്ച് ഒന്ന് വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ
വാദം. സൃഷ്ടിക്കാൻ dllname-ൽ നിന്ന് സൃഷ്ടിച്ച ഒരു ഹാഷ് ഉപയോഗിച്ച്
ഓരോ DLL-നും തനതായ ഇമേജ് ബേസുകൾ, ഇൻ-മെമ്മറി കൂട്ടിമുട്ടലുകൾ എന്നിവയും
പ്രോഗ്രാം നിർവ്വഹണം വൈകിപ്പിച്ചേക്കാവുന്ന സ്ഥലംമാറ്റങ്ങൾ ഒഴിവാക്കപ്പെടുന്നു. [ഈ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ് ഓപ്ഷൻ]
--disable-auto-image-base
ഒരു അദ്വിതീയ ഇമേജ് ബേസ് സ്വയമേവ സൃഷ്ടിക്കരുത്. ഇല്ലെങ്കിൽ
ഉപയോക്തൃ-നിർദ്ദിഷ്ട ഇമേജ് ബേസ് ("--ഇമേജ്-ബേസ്") തുടർന്ന് പ്ലാറ്റ്ഫോം ഉപയോഗിക്കുക
സ്ഥിരസ്ഥിതി. [ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--dll-search-prefix സ്ട്രിംഗ്
ഇറക്കുമതി ലൈബ്രറി ഇല്ലാതെ ഒരു dll-ലേക്ക് ഡൈനാമിക് ആയി ലിങ്ക് ചെയ്യുമ്പോൾ, തിരയുക
വേണ്ടി " .dll", "lib" എന്നതിന് മുൻഗണന നൽകുന്നു .dll".
ഈ സ്വഭാവം DLL-കൾ തമ്മിൽ എളുപ്പത്തിൽ വേർതിരിച്ചറിയാൻ അനുവദിക്കുന്നു
വിവിധ "ഉപപ്ലാറ്റ്ഫോമുകൾ": നേറ്റീവ്, സിഗ്വിൻ, യുവിൻ, പിഡബ്ല്യു, മുതലായവ
ഉദാഹരണത്തിന്, cygwin DLL-കൾ സാധാരണയായി "--dll-search-prefix=cyg" ഉപയോഗിക്കുന്നു.
[ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--സ്വയം ഇറക്കുമതി പ്രാപ്തമാക്കുക
ഡാറ്റയ്ക്കായി "_ചിഹ്നം" "__imp__symbol" എന്നതിലേക്ക് സങ്കീർണ്ണമായ ലിങ്ക് ചെയ്യുക
DLL-കളിൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക, എപ്പോൾ ആവശ്യമായ തങ്കിംഗ് ചിഹ്നങ്ങൾ സൃഷ്ടിക്കുക
ആ ഡാറ്റ കയറ്റുമതി ഉപയോഗിച്ച് ഇറക്കുമതി ലൈബ്രറികൾ നിർമ്മിക്കുന്നു. ശ്രദ്ധിക്കുക: ഉപയോഗം
'ഓട്ടോ-ഇറക്കുമതി' വിപുലീകരണം എന്നതിന്റെ ടെക്സ്റ്റ് വിഭാഗത്തിന് കാരണമാകും
ഇമേജ് ഫയൽ എഴുതാൻ കഴിയും. ഇത് PE-യുമായി പൊരുത്തപ്പെടുന്നില്ല.
മൈക്രോസോഫ്റ്റ് പ്രസിദ്ധീകരിച്ച COFF ഫോർമാറ്റ് സ്പെസിഫിക്കേഷൻ.
ശ്രദ്ധിക്കുക - 'ഓട്ടോ-ഇറക്കുമതി' വിപുലീകരണത്തിന്റെ ഉപയോഗവും വായനയ്ക്ക് മാത്രം കാരണമാകും
സാധാരണയായി .rdata വിഭാഗത്തിൽ സ്ഥാപിക്കുന്ന ഡാറ്റ
പകരം .data വിഭാഗത്തിൽ സ്ഥാപിച്ചു. ഇത് പ്രവർത്തിക്കാൻ വേണ്ടിയാണ്
ഇവിടെ വിവരിച്ചിരിക്കുന്ന കോൺസ്റ്റുകളുമായുള്ള ഒരു പ്രശ്നത്തെ ചുറ്റിപ്പറ്റിയാണ്:
http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html
'ഓട്ടോ-ഇറക്കുമതി' ഉപയോഗിക്കുന്നത് പൊതുവെ 'പ്രവർത്തിക്കും' -- എന്നാൽ ചിലപ്പോൾ നിങ്ങൾ
ഈ സന്ദേശം കണ്ടേക്കാം:
"വേരിയബിൾ ' ' യാന്ത്രികമായി ഇറക്കുമതി ചെയ്യാൻ കഴിയില്ല. ദയവായി വായിക്കുക
വിശദാംശങ്ങൾക്കായി ld ന്റെ "--eable-auto-import" എന്നതിനായുള്ള ഡോക്യുമെന്റേഷൻ."
ചില (സബ്) എക്സ്പ്രഷൻ ഒരു വിലാസം ആക്സസ് ചെയ്യുമ്പോൾ ഈ സന്ദേശം സംഭവിക്കുന്നു
ആത്യന്തികമായി രണ്ട് സ്ഥിരാങ്കങ്ങളുടെ ആകെത്തുക (Win32 ഇറക്കുമതി പട്ടികകൾ
ഒരെണ്ണം മാത്രം അനുവദിക്കുക). ഇത് സംഭവിക്കാനിടയുള്ള സന്ദർഭങ്ങളിൽ ആക്സസ്സ് ഉൾപ്പെടുന്നു
ഒരു DLL-ൽ നിന്നും ഇറക്കുമതി ചെയ്ത struct വേരിയബിളുകളുടെ അംഗത്വ ഫീൽഡുകളിലേക്കും
a-യിൽ നിന്ന് ഇറക്കുമതി ചെയ്ത ഒരു അറേ വേരിയബിളിലേക്ക് സ്ഥിരമായ സൂചിക ഉപയോഗിക്കുന്നത് പോലെ
DLL. ഏത് മൾട്ടിവേഡ് വേരിയബിളും (അറേകൾ, സ്ട്രക്റ്റുകൾ, ദൈർഘ്യമേറിയത് മുതലായവ) ചെയ്യാം
ഈ പിശക് അവസ്ഥ ട്രിഗർ ചെയ്യുക. എന്നിരുന്നാലും, കൃത്യമായി പരിഗണിക്കാതെ
കുറ്റകരമായ കയറ്റുമതി വേരിയബിളിന്റെ ഡാറ്റ തരം, ld എപ്പോഴും കണ്ടെത്തും
അത്, മുന്നറിയിപ്പ് നൽകി, പുറത്തുകടക്കുക.
പരിഗണിക്കാതെ തന്നെ ഈ ബുദ്ധിമുട്ട് പരിഹരിക്കാൻ നിരവധി മാർഗങ്ങളുണ്ട്
കയറ്റുമതി ചെയ്ത വേരിയബിളിന്റെ ഡാറ്റ തരം:
ഒരു മാർഗ്ഗം --enable-runtime-pseudo-reloc സ്വിച്ച് ഉപയോഗിക്കുക എന്നതാണ്. ഇത് വിടുന്നു
റൺടൈമിനായി നിങ്ങളുടെ ക്ലയന്റ് കോഡിലെ റഫറൻസുകൾ ക്രമീകരിക്കാനുള്ള ചുമതല
പരിസ്ഥിതി, അതിനാൽ റൺടൈം എൻവയോൺമെന്റിൽ മാത്രമേ ഈ രീതി പ്രവർത്തിക്കൂ
ഈ സവിശേഷതയെ പിന്തുണയ്ക്കുന്നു.
'സ്ഥിര'ങ്ങളിലൊന്ന് a ആകാൻ നിർബന്ധിക്കുക എന്നതാണ് രണ്ടാമത്തെ പരിഹാരം
വേരിയബിൾ -- അതായത്, കംപൈൽ സമയത്ത് അജ്ഞാതവും ഒപ്റ്റിമൈസ് ചെയ്യാനാവാത്തതുമാണ്.
അറേകൾക്ക്, രണ്ട് സാധ്യതകളുണ്ട്: a) സൂചിക ഉണ്ടാക്കുക (the
അറേയുടെ വിലാസം) ഒരു വേരിയബിൾ, അല്ലെങ്കിൽ ബി) 'സ്ഥിരമായ' സൂചിക ഉണ്ടാക്കുക a
വേരിയബിൾ. അങ്ങനെ:
ബാഹ്യ തരം extern_array[];
extern_array[1] -->
{അസ്ഥിര തരം *t=extern_array; ടി[1] }
or
ബാഹ്യ തരം extern_array[];
extern_array[1] -->
{അസ്ഥിരമായ int t=1; extern_array[t]}
സ്ട്രക്റ്റുകൾക്ക് (മറ്റ് മൾട്ടിവേഡ് ഡാറ്റാ തരങ്ങൾക്കും) ഒരേയൊരു ഓപ്ഷൻ
സ്ട്രക്റ്റ് തന്നെ ഉണ്ടാക്കുക (അല്ലെങ്കിൽ നീളമുള്ളത്, അല്ലെങ്കിൽ ...)
വേരിയബിൾ:
ബാഹ്യഘടന s extern_struct;
extern_struct.field -->
{അസ്ഥിര ഘടന s *t=&extern_struct; t->ഫീൽഡ്}
or
എക്സ്റ്റേൺ ലോംഗ് ലോംഗ് എക്സ്റ്റേൺ_ll;
extern_ll -->
{അസ്ഥിരമായ നീളം * ലോക്കൽ_ll=&extern_ll; *local_ll}
ഈ ബുദ്ധിമുട്ട് കൈകാര്യം ചെയ്യുന്നതിനുള്ള മൂന്നാമത്തെ മാർഗ്ഗം ഉപേക്ഷിക്കുക എന്നതാണ്
കുറ്റകരമായ ചിഹ്നത്തിനായി 'സ്വയം ഇറക്കുമതി' ചെയ്ത് അടയാളപ്പെടുത്തുക
"__declspec(dllimport)". എന്നിരുന്നാലും, പ്രായോഗികമായി അത് ഉപയോഗിക്കേണ്ടതുണ്ട്
നിങ്ങൾ ഒരു DLL നിർമ്മിക്കുകയാണോ എന്ന് സൂചിപ്പിക്കുന്നതിന് compile-time # നിർവചിക്കുന്നു,
DLL-ലേക്ക് ലിങ്ക് ചെയ്യുന്ന ക്ലയന്റ് കോഡ് നിർമ്മിക്കുന്നു, അല്ലെങ്കിൽ കേവലം
ഒരു സ്റ്റാറ്റിക് ലൈബ്രറിയിലേക്കുള്ള കെട്ടിടം/ലിങ്കിംഗ്. തിരഞ്ഞെടുപ്പ് നടത്തുന്നതിൽ
നേരിട്ടുള്ള വിലാസം പരിഹരിക്കുന്നതിനുള്ള വിവിധ രീതികൾക്കിടയിൽ
സ്ഥിരമായ ഓഫ്സെറ്റ് പ്രശ്നം, നിങ്ങൾ സാധാരണ യഥാർത്ഥ ലോകം പരിഗണിക്കണം
ഉപയോഗം:
യഥാർത്ഥ:
--foo.h
extern int arr[];
--foo.c
#"foo.h" ഉൾപ്പെടുത്തുക
ശൂന്യമായ മെയിൻ(int argc, char **argv){
printf("%d\n",arr[1]);
}
പരിഹാരം 1:
--foo.h
extern int arr[];
--foo.c
#"foo.h" ഉൾപ്പെടുത്തുക
ശൂന്യമായ മെയിൻ(int argc, char **argv){
/* ഈ പ്രതിവിധി win32, cygwin എന്നിവയ്ക്കുള്ളതാണ്; "ഒപ്റ്റിമൈസ്" ചെയ്യരുത് */
അസ്ഥിരമായ int *parr = arr;
printf("%d\n",parr[1]);
}
പരിഹാരം 2:
--foo.h
/* ശ്രദ്ധിക്കുക: യാന്ത്രിക-കയറ്റുമതി അനുമാനിക്കപ്പെടുന്നു (__declspec (dllexport) ഇല്ല) */
#എങ്കിൽ (നിർവചിച്ചിരിക്കുന്നത്(_WIN32) || നിർവചിച്ചിരിക്കുന്നത്(__CYGWIN__)) && \
!(defined(FOO_BUILD_DLL) || നിർവചിക്കപ്പെട്ടത്(FOO_STATIC))
#FOO_IMPORT __declspec (dllimport) നിർവ്വചിക്കുക
# കൂടാതെ
#FOO_IMPORT നിർവ്വചിക്കുക
#അവസാനം
എക്സ്റ്റേൺ FOO_IMPORT int arr[];
--foo.c
#"foo.h" ഉൾപ്പെടുത്തുക
ശൂന്യമായ മെയിൻ(int argc, char **argv){
printf("%d\n",arr[1]);
}
ഈ പ്രശ്നം ഒഴിവാക്കാനുള്ള നാലാമത്തെ മാർഗ്ഗം നിങ്ങളുടെ ലൈബ്രറിയിലേക്ക് വീണ്ടും കോഡ് ചെയ്യുക എന്നതാണ്
ഇതിനായി ഒരു ഡാറ്റാ ഇന്റർഫേസിന് പകരം ഒരു ഫങ്ഷണൽ ഇന്റർഫേസ് ഉപയോഗിക്കുക
കുറ്റകരമായ വേരിയബിളുകൾ (ഉദാ set_foo() ഒപ്പം get_foo() ആക്സസ്സർ
പ്രവർത്തനങ്ങൾ). [ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ്
ലിങ്കറുടെ]
--ഡിസേബിൾ-ഓട്ടോ-ഇറക്കുമതി
"_ചിഹ്നം" എന്നതിന്റെ സങ്കീർണ്ണമായ ലിങ്കിംഗ് ചെയ്യാൻ ശ്രമിക്കരുത്
DLL-കളിൽ നിന്നുള്ള DATA ഇമ്പോർട്ടുകൾക്കുള്ള "__imp__symbol". [ഈ ഓപ്ഷൻ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകം]
--പ്രവർത്തനക്ഷമമാക്കുക-pseudo-reloc
നിങ്ങളുടെ കോഡിൽ --enable-auto-import-ൽ വിവരിച്ചിരിക്കുന്ന പദപ്രയോഗങ്ങൾ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ
വിഭാഗം, അതായത്, പൂജ്യം അല്ലാത്ത ഓഫ്സെറ്റ് ഉള്ള DLL-ൽ നിന്ന് DATA ഇറക്കുമതി ചെയ്യുന്നു
സ്വിച്ച് 'റൺടൈം സ്യൂഡോ റീലോക്കേഷനുകളുടെ' ഒരു വെക്റ്റർ സൃഷ്ടിക്കും
അത്തരം റഫറൻസുകൾ ക്രമീകരിക്കുന്നതിന് റൺടൈം എൻവയോൺമെന്റിന് ഉപയോഗിക്കാം
നിങ്ങളുടെ ക്ലയന്റ് കോഡിലെ ഡാറ്റ. [ഈ ഐച്ഛികം i386 PE-യുടെ പ്രത്യേകതയാണ്
ലിങ്കറിന്റെ ടാർഗെറ്റഡ് പോർട്ട്]
--disable-runtime-pseudo-reloc
നോൺ-സീറോ ഓഫ്സെറ്റ് DATA ഇമ്പോർട്ടുകൾക്കായി വ്യാജ റീലോക്കേഷനുകൾ സൃഷ്ടിക്കരുത്
DLL-കളിൽ നിന്ന്. [ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകമാണ്
ലിങ്കറുടെ]
--Enable-extra-pe-debug
യാന്ത്രിക-ഇറക്കുമതി ചിഹ്നം തങ്കിംഗുമായി ബന്ധപ്പെട്ട അധിക ഡീബഗ് വിവരങ്ങൾ കാണിക്കുക.
[ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--വിഭാഗം-വിന്യാസം
വിഭാഗം വിന്യാസം സജ്ജമാക്കുന്നു. മെമ്മറിയിലെ വിഭാഗങ്ങൾ എപ്പോഴും ആരംഭിക്കും
ഈ സംഖ്യയുടെ ഗുണിതങ്ങളായ വിലാസങ്ങളിൽ. സ്ഥിരസ്ഥിതികൾ
0x1000. [ഈ ഓപ്ഷൻ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന്റെ പ്രത്യേകതയാണ്
ലിങ്കർ]
--സ്റ്റാക്ക് കരുതിവയ്ക്കുക
--സ്റ്റാക്ക് കരുതിവയ്ക്കുക,സമർപ്പിക്കുക
റിസർവ് ചെയ്യാനുള്ള മെമ്മറിയുടെ ബൈറ്റുകളുടെ എണ്ണം വ്യക്തമാക്കുക (ഓപ്ഷണലായി
പ്രതിബദ്ധത) ഈ പ്രോഗ്രാമിന്റെ സ്റ്റാക്ക് ആയി ഉപയോഗിക്കും. സ്ഥിരസ്ഥിതി 2MB ആണ്
സംവരണം, 4K പ്രതിബദ്ധത. [ഈ ഐച്ഛികം i386 PE-യുടെ പ്രത്യേകതയാണ്
ലിങ്കറിന്റെ ടാർഗെറ്റഡ് പോർട്ട്]
--ഉപസിസ്റ്റം ഏത്
--ഉപസിസ്റ്റം ഏത്:പ്രധാന
--ഉപസിസ്റ്റം ഏത്:പ്രധാന.പ്രായപൂർത്തിയാകാത്ത
നിങ്ങളുടെ പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യുന്ന സബ്സിസ്റ്റം വ്യക്തമാക്കുന്നു. ദി
നിയമപരമായ മൂല്യങ്ങൾ ഏത് "നേറ്റീവ്", "വിൻഡോസ്", "കൺസോൾ", "പോസിക്സ്",
കൂടാതെ "xbox". നിങ്ങൾക്ക് ഉപസിസ്റ്റം പതിപ്പും ഓപ്ഷണലായി സജ്ജമാക്കാം.
സംഖ്യാ മൂല്യങ്ങളും സ്വീകരിക്കുന്നു ഏത്. [ഈ ഓപ്ഷൻ
ലിങ്കറിന്റെ i386 PE ടാർഗെറ്റുചെയ്ത പോർട്ടിന് പ്രത്യേകം]
ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ "DllCharacteristics" ഫീൽഡിൽ ഫ്ലാഗുകൾ സജ്ജമാക്കുന്നു
PE ഫയൽ ഹെഡറിന്റെ: [ഈ ഓപ്ഷനുകൾ PE ടാർഗെറ്റുചെയ്തതിന് പ്രത്യേകമാണ്
ലിങ്കറിന്റെ തുറമുഖങ്ങൾ]
--ഹൈ-എൻട്രോപി-വ
ചിത്രം 64-ബിറ്റ് വിലാസ സ്പേസ് ലേഔട്ട് റാൻഡമൈസേഷനുമായി പൊരുത്തപ്പെടുന്നു
(ASLR).
--ഡൈനാമിക്ബേസ്
അഡ്രസ് സ്പേസ് ലേഔട്ട് ഉപയോഗിച്ച് ചിത്രത്തിന്റെ അടിസ്ഥാന വിലാസം മാറ്റിസ്ഥാപിക്കാം
ക്രമരഹിതമാക്കൽ (ASLR). എംഎസ് വിൻഡോസിലാണ് ഈ ഫീച്ചർ അവതരിപ്പിച്ചത്
i386 PE ടാർഗെറ്റുകൾക്കായുള്ള Vista.
--forceinteg
കോഡ് സമഗ്രത പരിശോധനകൾ നടപ്പിലാക്കുന്നു.
--nxcompat
ചിത്രം ഡാറ്റാ എക്സിക്യൂഷൻ പ്രിവൻഷനുമായി പൊരുത്തപ്പെടുന്നു. ഈ
i2 PE ടാർഗെറ്റുകൾക്കായി MS Windows XP SP386 ഉപയോഗിച്ച് ഫീച്ചർ അവതരിപ്പിച്ചു.
--ഒറ്റപ്പെടൽ ഇല്ല
ചിത്രം ഒറ്റപ്പെടലിനെ മനസ്സിലാക്കുന്നുണ്ടെങ്കിലും, ചിത്രത്തെ ഒറ്റപ്പെടുത്തരുത്.
--നോ-സെഹ്
ചിത്രം SEH ഉപയോഗിക്കുന്നില്ല. ഇതിൽ നിന്ന് ഒരു SE ഹാൻഡ്ലറെയും വിളിക്കാൻ പാടില്ല
ചിത്രം.
--ബന്ധമില്ല
ഈ ചിത്രം ബന്ധിപ്പിക്കരുത്.
--wdmdriver
ഡ്രൈവർ എംഎസ് വിൻഡോസ് ഡ്രൈവർ മോഡൽ ഉപയോഗിക്കുന്നു.
--ത്സാവെയർ
ചിത്രം ടെർമിനൽ സെർവറിന് അറിയാം.
--ടൈംസ്റ്റാമ്പ് ചേർക്കുക
--നോ-ഇൻസേർട്ട്-ടൈംസ്റ്റാമ്പ്
ചിത്രത്തിൽ ഒരു യഥാർത്ഥ ടൈംസ്റ്റാമ്പ് ചേർക്കുക. ഇതാണ് സ്ഥിരസ്ഥിതി
ലെഗസി കോഡുമായി പൊരുത്തപ്പെടുന്ന രീതിയിലുള്ള പെരുമാറ്റം, അതിനർത്ഥം ചിത്രം എന്നാണ്
മറ്റ് ഉടമസ്ഥതയിലുള്ള ഉപകരണങ്ങളുമായി പ്രവർത്തിക്കും. ഇതിലെ പ്രശ്നം
ഡിഫോൾട്ട്, ഇത് അല്പം വ്യത്യസ്തമായ ഇമേജുകൾക്ക് കാരണമാകും
ഒരേ സ്രോതസ്സുകൾ ബന്ധിപ്പിക്കുമ്പോൾ ഓരോ തവണയും നിർമ്മിക്കപ്പെടുന്നു. ഓപ്ഷൻ
--നോ-ഇൻസേർട്ട്-ടൈംസ്റ്റാമ്പ് എന്നതിനായി പൂജ്യം മൂല്യം ചേർക്കാൻ ഉപയോഗിക്കാം
ടൈംസ്റ്റാമ്പ്, ഇത് ബൈനറികൾ ഒരേപോലെ നിർമ്മിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു
ഉറവിടങ്ങൾ സമാനമായി താരതമ്യം ചെയ്യും.
C6X uClinux ടാർഗെറ്റ് പിന്തുണയ്ക്കാൻ DSBT എന്ന ബൈനറി ഫോർമാറ്റ് ഉപയോഗിക്കുന്നു
ലൈബ്രറികൾ പങ്കിട്ടു. സിസ്റ്റത്തിലെ പങ്കിട്ട ഓരോ ലൈബ്രറിക്കും ഒരു ഉണ്ടായിരിക്കണം
അദ്വിതീയ സൂചിക; എല്ലാ എക്സിക്യൂട്ടബിളുകളും 0 എന്ന സൂചിക ഉപയോഗിക്കുന്നു.
--dsbt-size വലുപ്പം
ഈ ഓപ്ഷൻ നിലവിലുള്ളതിന്റെ DSBT-യിലെ എൻട്രികളുടെ എണ്ണം സജ്ജമാക്കുന്നു
എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ട ലൈബ്രറി വലുപ്പം. ഒരു സൃഷ്ടിക്കുക എന്നതാണ് സ്ഥിരസ്ഥിതി
64 എൻട്രികളുള്ള പട്ടിക.
--dsbt-സൂചിക സൂചിക
ഈ ഓപ്ഷൻ നിലവിലുള്ള എക്സിക്യൂട്ടബിൾ അല്ലെങ്കിൽ പങ്കിട്ടതിന്റെ DSBT സൂചിക സജ്ജമാക്കുന്നു
ലൈബ്രറിയിലേക്ക് സൂചിക. ഡിഫോൾട്ട് 0 ആണ്, ഇതിന് അനുയോജ്യമാണ്
എക്സിക്യൂട്ടബിളുകൾ സൃഷ്ടിക്കുന്നു. ഒരു പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുകയാണെങ്കിൽ
0-ന്റെ DSBT സൂചിക, "R_C6000_DSBT_INDEX" റീലോക്കുകൾ പകർത്തി
ഔട്ട്പുട്ട് ഫയൽ.
ദി --no-merge-exidx-entries എന്ന ലയനം സ്വിച്ച് പ്രവർത്തനരഹിതമാക്കുന്നു
ഫ്രെയിമിലെ എക്സിഡ്എക്സ് എൻട്രികൾ അൺവൈൻഡ് ഇൻഫോ.
68HC11, 68HC12 ലിങ്കറുകൾ നിയന്ത്രിക്കുന്നതിനുള്ള നിർദ്ദിഷ്ട ഓപ്ഷനുകളെ പിന്തുണയ്ക്കുന്നു
മെമ്മറി ബാങ്ക് സ്വിച്ചിംഗ് മാപ്പിംഗും ട്രാംപോളിൻ കോഡ് ജനറേഷനും.
--നോ-ട്രാംപോളിൻ
ഈ ഓപ്ഷൻ ട്രാംപോളിൻ ജനറേഷൻ പ്രവർത്തനരഹിതമാക്കുന്നു. സ്ഥിരസ്ഥിതിയായി എ
ഉപയോഗിക്കുന്നത് എന്ന് വിളിക്കപ്പെടുന്ന ഓരോ ഫാർ ഫംഗ്ഷനും ട്രാംപോളിൻ സൃഷ്ടിക്കപ്പെടുന്നു
ഒരു "jsr" നിർദ്ദേശം (ഒരു ദൂരെയുള്ള പ്രവർത്തനത്തിലേക്കുള്ള ഒരു പോയിന്റർ ചെയ്യുമ്പോൾ ഇത് സംഭവിക്കുന്നു
എടുത്തതാണ്).
--ബാങ്ക് വിൻഡോ പേര്
ഈ ഓപ്ഷൻ ലിങ്കർക്ക് മെമ്മറി റീജിയന്റെ പേര് സൂചിപ്പിക്കുന്നു
ലെ MEMORY മെമ്മറി ബാങ്ക് വിൻഡോ വിവരിക്കുന്ന സ്പെസിഫിക്കേഷൻ.
അത്തരം പ്രദേശത്തിന്റെ നിർവ്വചനം പിന്നീട് കണക്കുകൂട്ടാൻ ലിങ്കർ ഉപയോഗിക്കുന്നു
മെമ്മറി വിൻഡോയിൽ പേജിംഗും വിലാസങ്ങളും.
GOT കൈകാര്യം ചെയ്യുന്നത് നിയന്ത്രിക്കുന്നതിന് ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ പിന്തുണയ്ക്കുന്നു
68K ലക്ഷ്യങ്ങൾക്കായി ലിങ്ക് ചെയ്യുമ്പോൾ ജനറേഷൻ.
--കിട്ടി=ടൈപ്പ് ചെയ്യുക
ഏത് GOT ജനറേഷൻ സ്കീം ഉപയോഗിക്കണമെന്ന് ഈ ഓപ്ഷൻ ലിങ്കറോട് പറയുന്നു.
ടൈപ്പ് ചെയ്യുക അതിലൊന്നായിരിക്കണം സിംഗിൾ, നെഗറ്റീവ്, മൾട്ടിഗോട്ട് or ലക്ഷ്യം. വേണ്ടി
കൂടുതൽ വിവരങ്ങൾക്ക് വിവര എൻട്രി കാണുക ld.
മൈക്രോഎംഐപിഎസ് നിർദ്ദേശങ്ങൾ നിയന്ത്രിക്കുന്നതിന് ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ പിന്തുണയ്ക്കുന്നു
MIPS ടാർഗെറ്റുകൾക്കായി ലിങ്ക് ചെയ്യുമ്പോൾ ജനറേഷൻ.
--insn32
--no-insn32
ഈ ഓപ്ഷനുകൾ ഉപയോഗിക്കുന്ന മൈക്രോമിപ്സ് നിർദ്ദേശങ്ങളുടെ തിരഞ്ഞെടുപ്പ് നിയന്ത്രിക്കുന്നു
പിഎൽടിയിലോ അലസത്തിലോ ഉള്ളത് പോലെ ലിങ്കർ സൃഷ്ടിച്ച കോഡ്
ബൈൻഡിംഗ് സ്റ്റബുകൾ, അല്ലെങ്കിൽ വിശ്രമത്തിൽ. എങ്കിൽ --insn32 ഉപയോഗിക്കുന്നു, തുടർന്ന്
ലിങ്കർ 32-ബിറ്റ് നിർദ്ദേശ എൻകോഡിംഗുകൾ മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂ. സ്ഥിരസ്ഥിതിയായി അല്ലെങ്കിൽ എങ്കിൽ
--no-insn32 ഉപയോഗിക്കുന്നു, ഉൾപ്പെടെ എല്ലാ നിർദ്ദേശ എൻകോഡിംഗുകളും ഉപയോഗിക്കുന്നു
സാധ്യമാകുന്നിടത്ത് 16-ബിറ്റ്.
ENVIRONMENT
നിങ്ങൾക്ക് സ്വഭാവം മാറ്റാൻ കഴിയും ld പരിസ്ഥിതി വേരിയബിളുകൾക്കൊപ്പം
"GNUTARGET", "LDEMULATION", "COLLECT_NO_DEMANGLE" എന്നിവ.
"GNUTARGET" നിങ്ങൾ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ ഇൻപുട്ട്-ഫയൽ ഒബ്ജക്റ്റ് ഫോർമാറ്റ് നിർണ്ണയിക്കുന്നു -b
(അല്ലെങ്കിൽ അതിന്റെ പര്യായപദം --ഫോർമാറ്റ്). അതിന്റെ മൂല്യം BFD പേരുകളിൽ ഒന്നായിരിക്കണം
ഒരു ഇൻപുട്ട് ഫോർമാറ്റിനായി. പരിസ്ഥിതിയിൽ "GNUTARGET" ഇല്ലെങ്കിൽ, ld
ലക്ഷ്യത്തിന്റെ സ്വാഭാവിക ഫോർമാറ്റ് ഉപയോഗിക്കുന്നു. "GNUTARGET" എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ
"default" തുടർന്ന് BFD പരിശോധിച്ചുകൊണ്ട് ഇൻപുട്ട് ഫോർമാറ്റ് കണ്ടെത്താൻ ശ്രമിക്കുന്നു
ബൈനറി ഇൻപുട്ട് ഫയലുകൾ; ഈ രീതി പലപ്പോഴും വിജയിക്കുന്നു, പക്ഷേ സാധ്യതകളുണ്ട്
അവ്യക്തതകൾ, കാരണം മാന്ത്രിക സംഖ്യയാണെന്ന് ഉറപ്പാക്കാൻ ഒരു രീതിയും ഇല്ല
ഒബ്ജക്റ്റ്-ഫയൽ ഫോർമാറ്റുകൾ വ്യക്തമാക്കാൻ ഉപയോഗിക്കുന്നത് അദ്വിതീയമാണ്. എന്നിരുന്നാലും, ദി
ഓരോ സിസ്റ്റത്തിലും BFD-യ്ക്കുള്ള കോൺഫിഗറേഷൻ നടപടിക്രമം പരമ്പരാഗതമായി സ്ഥാപിക്കുന്നു
സെർച്ച് ലിസ്റ്റിൽ ആദ്യം ആ സിസ്റ്റത്തിനായുള്ള ഫോർമാറ്റ്, അതിനാൽ അവ്യക്തതകളുണ്ട്
കൺവെൻഷന് അനുകൂലമായി പരിഹരിച്ചു.
"LDEMULATION" നിങ്ങൾ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ ഡിഫോൾട്ട് എമുലേഷൻ നിർണ്ണയിക്കുന്നു -m
ഓപ്ഷൻ. എമുലേഷൻ ലിങ്കർ പെരുമാറ്റത്തിന്റെ വിവിധ വശങ്ങളെ ബാധിച്ചേക്കാം,
പ്രത്യേകിച്ച് ഡിഫോൾട്ട് ലിങ്കർ സ്ക്രിപ്റ്റ്. നിങ്ങൾക്ക് ലഭ്യമായവ ലിസ്റ്റ് ചെയ്യാം
കൂടെ അനുകരണങ്ങൾ --വാക്കുകൾ or -V ഓപ്ഷനുകൾ. എങ്കിൽ -m ഓപ്ഷൻ അല്ല
ഉപയോഗിച്ചു, കൂടാതെ "LDEMULATION" എൻവയോൺമെന്റ് വേരിയബിൾ നിർവചിച്ചിട്ടില്ല
ഡിഫോൾട്ട് എമുലേഷൻ ലിങ്കർ എങ്ങനെ ക്രമീകരിച്ചു എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു.
സാധാരണയായി, ലിങ്കർ ഡിമാൻഗ്ലിംഗ് ചിഹ്നങ്ങൾ ഡിഫോൾട്ട് ചെയ്യും. എന്നിരുന്നാലും, എങ്കിൽ
പരിസ്ഥിതിയിൽ "COLLECT_NO_DEMANGLE" സജ്ജീകരിച്ചിരിക്കുന്നു, തുടർന്ന് അത് ഡിഫോൾട്ടാകും
ചിഹ്നങ്ങൾ പൊളിക്കാതിരിക്കാൻ. ഈ എൻവയോൺമെന്റ് വേരിയബിൾ ഉപയോഗിക്കുന്നത് a
"gcc" ലിങ്കർ റാപ്പർ പ്രോഗ്രാമിന്റെ സമാനമായ ഫാഷൻ. സ്ഥിരസ്ഥിതി ആയിരിക്കാം
വഴി മറികടക്കും --വിഘടിപ്പിക്കുക ഒപ്പം --നോ-ഡിമാംഗിൾ ഓപ്ഷനുകൾ.
onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് i686-linux-gnu-ld.bfd ഓൺലൈനായി ഉപയോഗിക്കുക