ലിനക്സ് / യൂണിക്സ് കമാൻഡ്: ഐഡി

NAME

ld - ഗ്നു ലിങ്കർ ഉപയോഗിയ്ക്കുന്നു

സിനോപ്സിസ്

ld [ options ] objfile ...

വിവരണം

ld നിരവധി ഒബ്ജക്റ്റുകളും ആർക്കൈവ് ഫയലുകളും സംയോജിപ്പിക്കുന്നു, അവയുടെ ഡാറ്റയും പ്രതീക റെഫറൻസുകളുമായി ബന്ധപ്പെടുത്തുന്നു. സാധാരണയായി ഒരു പ്രോഗ്രാം കംപൈൽ ചെയ്യുന്നതിനുള്ള അവസാന ഘട്ടം ld റൺ ചെയ്യുക എന്നതാണ്.

AT & T ന്റെ ലിങ്ക് എഡിറ്റർ കമാൻഡ് ഭാഷ സിന്റാക്സ് എന്ന സൂപ്പർസെറ്റിൽ എഴുതിയ ലിൻഡർ കമാൻഡ് ഭാഷ ഫയലുകൾ, ലിങ്കിങ് പ്രക്രിയയിൽ സ്പഷ്ടവും പൂർണ്ണവുമായ നിയന്ത്രണം പ്രദാനം ചെയ്യുന്നതിനായി ld അംഗീകരിക്കുന്നു.

ഈ മാൻ താൾ കമാൻഡ് ഭാഷയെ വിവരിക്കുന്നില്ല; "info" ലെ ld എൻട്രി നോക്കുക, അല്ലെങ്കിൽ മാനുവൽ ld: ഗ്നു ലിങ്ക്ഡർ, കമാൻഡ് ഭാഷയിലെ മുഴുവൻ വിവരങ്ങളും, ജിഎൻയു കണ്ണിയുടെ മറ്റ് വശങ്ങളെക്കുറിച്ചും.

ഒബ്ജക്റ്റ് ഫയലുകളിൽ പ്രവർത്തിക്കാൻ പൊതുവായ ഉദ്ദേശ്യമുള്ള BFD ലൈബ്രറികൾ ഈ ld ഉപയോഗപ്പെടുത്തുന്നു. വിവിധ ഫോർമാറ്റുകളിലുള്ള ഒബ്ജക്റ്റ് ഫയലുകൾ വായിക്കാനും സംയോജിപ്പിക്കാനും റൈറ്റ് ചെയ്യാനും ഇത് ld അനുവദിക്കുന്നു --- ഉദാഹരണത്തിന്, COFF അല്ലെങ്കിൽ "a.out". ഏതെങ്കിലും തരത്തിലുള്ള ഒബ്ജക്ട് ഫയൽ നിർമ്മിക്കുന്നതിനായി വ്യത്യസ്ത ഫോർമാറ്റുകൾ ഒരുമിച്ച് ബന്ധിപ്പിക്കപ്പെടാം.

ഡയഗ്നോസ്റ്റിക് വിവരങ്ങൾ നൽകുന്നതിൽ മറ്റ് ലിങ്കേഴ്സിനെ അപേക്ഷിച്ച് ഗ്നു ലൈസൻസി കൂടുതൽ സഹായകരമാണ്. ഒരുപാട് പിശകുകൾ നേരിട്ടപ്പോൾ പല പങ്കാളികളും വധശിക്ഷ നടപ്പാക്കി. സാധ്യമാകുമ്പോഴെല്ലാം, ld തുടർന്നും നടപ്പിലാക്കുന്നു. ഇത് മറ്റ് പിശകുകൾ തിരിച്ചറിയാൻ നിങ്ങളെ അനുവദിക്കുന്നു (അല്ലെങ്കിൽ, ചില കേസുകളിൽ, പിശക് കാരണം ഒരു ഔട്ട്പുട്ട് ഫയൽ ലഭിക്കുന്നതിന്).

ഗ്നു Linker ld അനവധി തരത്തിലുള്ള സാഹചര്യങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിനു്, അതു് മറ്റു് പൊരുത്തമുള്ളവയുമായി പൊരുത്തപ്പെടുന്നവയുമാണു്. തത്ഫലമായി, നിങ്ങളുടെ സ്വഭാവത്തെ നിയന്ത്രിക്കാനുള്ള പല തിരഞ്ഞെടുപ്പുകളും നിങ്ങൾക്കുണ്ട്.

ഓപ്ഷനുകൾ

ലിങ്കർ കമാൻഡ് ലൈൻ ഓപ്ഷനുകൾ അനധികൃതമായി പിന്തുണയ്ക്കുന്നു, എന്നാൽ യഥാർത്ഥത്തിൽ ചില പ്രയോഗങ്ങളിൽ ഏതെങ്കിലും പ്രത്യേക സന്ദർഭത്തിൽ ഉപയോഗിക്കുന്നത്. ഉദാഹരണത്തിനു്, സ്റ്റാൻഡേർഡ് യുണിക്സ് സിസ്റ്റത്തിൽ സ്റ്റാൻഡേർഡ് യുണിക്സ് ഒബ്ജക്ട് ഫയലുകൾക്കു് ബന്ധം ld ഉപയോഗിയ്ക്കുന്നു . അത്തരമൊരു സിസ്റ്റത്തിൽ, "hello.o" എന്നൊരു ഫയൽ ലിങ്കുചെയ്യാൻ:

ld -o /lib/crt0.o hello.o -lc

ഇത് "/lib/crt0.o" എന്ന ഫയൽ "hello.o", "libc.a" എന്ന ലൈബ്രറിയുമായി ബന്ധിപ്പിക്കുന്നതിന്റെ ഫലമായി ഉൽപ്പെടുത്താവുന്ന ഒരു ഫയൽ ഉത്പാദിപ്പിക്കാൻ ld എന്ന് പറയുന്നു. ഇത് സ്റ്റാൻഡേർഡ് തിരയൽ ഡയറക്ടറികളിൽ നിന്നും ലഭിക്കുന്നു. (താഴെ -l ഓപ്ഷന്റെ ചർച്ച കാണുക.)

കമാൻഡ് ലൈനിൽ എപ്പോൾ വേണമെങ്കിലും ld- ലേക്കുള്ള കമാൻഡ്-ലൈൻ ഓപ്ഷനുകൾ നൽകാം. എന്നിരുന്നാലും, -l അല്ലെങ്കിൽ -t പോലുള്ള ഫയലുകൾ റഫർ ചെയ്യുന്ന ഓപ്ഷനുകൾ, കമാൻഡ് ലൈനിൽ ഓപ്ഷൻ ദൃശ്യമാവുന്ന സമയത്ത് ഫയൽ വായിക്കാൻ കാരണമാകുന്നു, അത് ആബ്ജക്റ്റ് ഫയലുകളിലേക്കും മറ്റ് ഫയൽ ഓപ്ഷനുകളിലേക്കും ആണ്. നോൺ-ഫൈൻഡർ ഓപ്ഷനുകൾ മറ്റൊരു ആർഗ്യുമെൻറ് ഉപയോഗിച്ച് ആവർത്തിക്കുകയോ അല്ലെങ്കിൽ ആ ഓപ്ഷന്റെ മുൻഗണനകളോ (ആ കമാൻഡ് ലൈനിൽ ഇടതു വശത്തേക്കാൾ കൂടുതലായി) അസാധുവാക്കപ്പെടും. ഒന്നിലധികം തവണ അർഥവത്തായം വ്യക്തമാക്കിയേക്കാവുന്ന ഓപ്ഷനുകൾ ചുവടെയുള്ള വിവരങ്ങളിൽ സൂചിപ്പിച്ചിരിക്കുന്നു.

ഒബ്ജക്ട് ഫയലുകളും ആർക്കൈവുകളും ഒരുമിച്ച് ബന്ധിപ്പിക്കേണ്ടതുണ്ട്. ഒരു ഓപ്ഷൻ, അതിന്റെ ആർഗ്യുമെന്റ് എന്നിവയ്ക്കിടയിലുള്ള ഒരു ഓബ്ജക്റ്റ് ഫയൽ ആർഗ്യുമെൻറ് സ്ഥാപിക്കാൻ പാടില്ല, അല്ലാതെ കമാൻഡ് ലൈൻ ഓപ്ഷനുകളുമായി അവർ പിന്തുടരുവാനും, മുൻപും അല്ലെങ്കിൽ മിക്സഡ് ചെയ്യാനും കഴിയും.

സാധാരണയായി ലിങ്കർ ഒരു ഒബ്ജക്റ്റ് ഫയലെങ്കിലും ഉപയോഗിച്ച് അഭ്യർത്ഥിക്കും, എന്നാൽ -l , -R , സ്ക്രിപ്റ്റ് കമാൻഡ് ഭാഷ എന്നിവ ഉപയോഗിച്ച് ബൈനറി ഇൻപുട്ട് ഫയലുകളുടെ മറ്റ് ഫോമുകൾ നിങ്ങൾക്ക് വ്യക്തമാക്കാൻ കഴിയും. ബൈനറി ഇൻപുട്ട് ഫയലുകളൊന്നും വ്യക്തമാക്കാത്തപക്ഷം, ലിങ്കർ ഒരു ഔട്ട്പുട്ടുകളും നൽകുന്നില്ല, കൂടാതെ സന്ദേശത്തിൽ ഇൻപുട്ട് ഫയലുകളില്ല .

ഒരു ഒബ്ജക്റ്റ് ഫയലിന്റെ ഫോർമാറ്റ് ലിങ്കറിനേ തിരിച്ചറിയാൻ കഴിഞ്ഞില്ലെങ്കിൽ, അത് ഒരു ലിങ്കർ സ്ക്രിപ്റ്റ് ആണെന്ന് അത് അനുമാനിക്കും. ഈ രീതിയിൽ സൂചിപ്പിച്ചിരിക്കുന്ന ഒരു സ്ക്രിപ്റ്റ് കണ്ണിയ്ക്കായി ഉപയോഗിക്കുന്ന പ്രധാന ലിങ്കിൽ സ്ക്രിപ്റ്റ് (സ്വതവേയുള്ള ലിങ്കർ സ്ക്രിപ്റ്റ് അല്ലെങ്കിൽ -T ഉപയോഗിച്ച് വ്യക്തമാക്കിയ ഒന്ന്) ഒതുക്കിയിരിയ്ക്കുന്നു . ഈ സവിശേഷത ഒരു വസ്തുവിനെ അല്ലെങ്കിൽ ഒരു ആർക്കൈവായി കാണപ്പെടുന്ന ഒരു ഫയലിനെതിരായി ലിങ്കുചെയ്യാൻ അനുവദിക്കുന്നു, എന്നാൽ യഥാർത്ഥത്തിൽ ചില പ്രതീക മൂല്യങ്ങളെ മാത്രം നിർവചിക്കുകയോ അല്ലെങ്കിൽ മറ്റ് വസ്തുക്കളെ ലോഡുചെയ്യുന്നതിന് "INPUT" അല്ലെങ്കിൽ "GROUP" ഉപയോഗിക്കുകയോ ചെയ്യുന്നു. ഈ രീതിയിൽ ഒരു സ്ക്രിപ്റ്റ് വ്യക്തമാക്കുന്നത് പ്രധാന ലിങ്ക് ലിപിയുമായുള്ള വ്യത്യാസം മാത്രമാണ്; സ്വതവേയുള്ള ലിപണർ സ്ക്രിപ്റ്റ് പൂർണ്ണമായി മാറ്റി -T ഐച്ഛികം ഉപയോഗിയ്ക്കുക.

ഓപ്ഷനുകൾക്ക് ഒരു അക്ഷരമെടുത്തുള്ള ഓപ്ഷനുകൾക്കായി ഓപ്ഷൻ ആർഗ്യുമെന്റുകൾ വൈറ്റ്സ്പെയ്സ് ഇടപെടാതെ ഓപ്ഷൻ കത്ത് പിന്തുടരുകയോ അല്ലെങ്കിൽ ആവശ്യമുള്ള ഓപ്ഷൻ ഉടനടി പ്രത്യേക ആർഗ്യുമെന്റായി നൽകേണ്ടതാണ്.

ഒന്നിൽ കൂടുതൽ അക്ഷരങ്ങൾ ഉള്ള ഓപ്ഷനുകൾക്ക് ഒരു ഡാഷ് അല്ലെങ്കിൽ രണ്ട് ഓപ്ഷൻ നാമം മുൻപുള്ളത്; ഉദാഹരണത്തിനു്, -trace-symbol , --trace-symbol എന്നിവ തുല്യമാണു്. കുറിപ്പ് - ഈ നിയമത്തിന് ഒരു അപവാദം ഉണ്ട്. ഒരു ചെറിയ കേസ് 'ഓ' ഉപയോഗിച്ച് ആരംഭിക്കുന്ന ഒന്നിലധികം അക്ഷര ഓപ്ഷനുകൾ രണ്ട് ഡാഷുകൾ മാത്രമേ പൂർത്തീകരിക്കുകയുള്ളൂ. -o ഐച്ഛികം ഉപയോഗിച്ചു് ആശയക്കുഴപ്പം കുറയ്ക്കുക എന്നതാണ്. ഉദാഹരണത്തിന്, ഔട്ട്പുട്ട് ഫയൽ നാമം മാജിക് ആയി സജ്ജീകരിക്കുന്നു, എന്നാൽ ഔട്ട്പുട്ടിൽ --omagic NMAGIC ഫ്ലാഗ് സജ്ജമാക്കുന്നു.

ഒന്നിലധികം-അക്ഷര ഓപ്ഷനുകൾക്കുള്ള ആർഗ്യുമെന്റുകൾ ഒരു തുല്യ ചിഹ്നം വഴി ഓപ്ഷൻ നാമത്തിൽ നിന്നും വേർതിരിക്കേണ്ടതാണ്, അല്ലെങ്കിൽ ആവശ്യമുള്ള ഓപ്ഷൻ ഉടനടി പ്രത്യേക ആർഗ്യുമെന്റായി നൽകുക. ഉദാഹരണത്തിനു്, --trace-symbol foo , --trace-symbol = foo എന്നിവ തുല്യമാണു്. ഒന്നിലധികമുള്ള-അക്ഷര ഓപ്ഷനുകളുടെ പേരുകളുടെ പ്രത്യേക ലിഖിതങ്ങൾ സ്വീകരിച്ചിരിക്കുന്നു.

കുറിപ്പ് - ഒരു കംപൈലർ ഡ്രൈവർ (ഉദാ: gcc ) വഴി ലിങ്കർ ആ പരോക്ഷമായി ഉപയോഗപ്പെടുത്തുകയാണെങ്കിൽ, എല്ലാ ലിങ്ക്കാർ കമാൻഡ് ലൈൻ ഓപ്ഷനുകളും -Wl, (അല്ലെങ്കിൽ പ്രത്യേക കംപൈലർ ഡ്രൈവർക്ക് അനുയോജ്യമായത്) ഇങ്ങനെ മുൻപ്:

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

ഇത് പ്രധാനമാണു്, അല്ലാത്തപക്ഷം കമ്പൈലർ ഡ്രൈവർ പ്രോഗ്രാം ലിങ്ക്ഡർ ഐച്ഛികങ്ങൾ നിശബ്ദമായി ഉപേക്ഷിയ്ക്കുന്നു, ഇതു് ഒരു തെറ്റായ കണ്ണിയാണു്.

ഗ്നു ലിങ്കർ സ്വീകരിച്ച ജെനൈനക് കമാൻഡ് ലൈൻ സ്വിച്ചുകളുടെ പട്ടിക താഴെപറയുന്നു:

-ഒരു കീവേഡ്

HP / UX അനുയോജ്യതയ്ക്കായി ഈ ഓപ്ഷൻ പിന്തുണയ്ക്കുന്നു. കീവേഡ് ആർഗ്യുമെന്റ് എന്നത് സ്ട്രിംഗുകളായ ആർക്കൈവോ , പങ്കിട്ട അല്ലെങ്കിൽ സഹജമായിരിക്കണം . -archiveive- ന് ഫലപ്രദമായി തുല്യമാണ്, മറ്റ് രണ്ട് കീവേഡുകളും സജീവമായി തുല്യമാണ് -ബിഡമിക് . ഈ ഐച്ഛികം എപ്പോൾ വേണമെങ്കിലും ഉപയോഗിയ്ക്കാം.

- ഒരു വാസ്തുവിദ്യ

- ആർക്കിറ്റക്ചർ = ആർക്കിറ്റക്ചർ

Ld- യുടെ നിലവിലുള്ള പ്രകാശത്തിൽ, ഇന്റൽ 960 കുടുംബ വാസ്തുവിദ്യയ്ക്കുള്ള ഈ ഉപാധി ഉപയോഗപ്രദമാകുന്നു. ആ ld കോൺഫിഗറേഷനിൽ, ആർക്കിറ്റക്ചർ ആർഗുമെൻറ് 960 കുടുംബത്തിലെ ആർക്കിറ്റക്ചറുകളെ തിരിച്ചറിയുന്നു, ചില സുരക്ഷാ മുൻകരുതലുകൾ ശേഖരിക്കുകയും ആർക്കൈവ് ലൈബ്രറി തിരയൽ പാഥ് മാറ്റുകയും ചെയ്യുന്നു.

Ld- ന്റെ ഭാവിയിലെ റിലീസുകൾ മറ്റ് ആർക്കിറ്റക്ചർ കുടുംബങ്ങൾക്ക് സമാനമായ പ്രവർത്തനത്തെ പിന്തുണച്ചേക്കാം.

-b ഇൻപുട്ട്-ഫോർമാറ്റ്

--format = ഇൻപുട്ട്-ഫോർമാറ്റ്

ഒന്നിൽ കൂടുതൽ ഒബ്ജക്റ്റ് ഫയൽ പിന്തുണയ്ക്കുന്നതിന് ld ക്രമീകരിക്കാം. നിങ്ങളുടെ ld ഇതു ക്രമീകരിച്ചിട്ടുണ്ടെങ്കിൽ, കമാൻഡ് ലൈനിൽ ഈ ഓപ്ഷൻ പിന്തുടരുന്ന ഇൻപുട്ട് ഒബ്ജക്ട് ഫയലുകൾക്കുള്ള ബൈനറി ഫോർമാറ്റ് വ്യക്തമാക്കാൻ -b ഓപ്ഷൻ ഉപയോഗിക്കാം. Ld പകരം മറ്റൊരു ഒബ്ജക്ട് ഫോർമാറ്റുകളെ പിന്തുണയ്ക്കാൻ ക്രമീകരിച്ചിട്ടുണ്ടെങ്കിലും, ഇത് സാധാരണ നിർദ്ദേശിക്കേണ്ടതില്ല, ഓരോ മെഷീനും ഏറ്റവും സാധാരണമായ ഫോർമാറ്റ് ഒരു സാധാരണ ഇൻപുട്ട് ഫോർമാറ്റായി പ്രതീക്ഷിക്കുന്നു. ഇൻപുട്ട്-ഫോർമാറ്റ് ഒരു ടെക്സ്റ്റ് സ്ട്രിംഗാണ്, BFD ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്ന ഒരു പ്രത്യേക ഫോർമാറ്റിന്റെ പേരാണ്. ( Objdump -i ഉള്ള ലഭ്യമായ ബൈനറി ഫോർമാറ്റുകൾ നിങ്ങൾക്ക് പട്ടികപ്പെടുത്താം.)

നിങ്ങൾ ഒരു അസാധാരണ ബൈനറി ഫോർമാറ്റിനൊപ്പം ഫയലുകൾ ബന്ധപ്പെടുത്തുകയാണെങ്കിൽ ഈ ഓപ്ഷൻ ഉപയോഗിക്കേണ്ടി വന്നേക്കാം. ഒരു പ്രത്യേക ഫോർമാറ്റിൽ ഓരോ കൂട്ടം ഒബ്ജക്റ്റ് ഫയലുകളിലും -b ഇൻപുട്ട്-ഫോർമാറ്റ് ഉൾപ്പെടുത്തുന്നതിലൂടെ നിങ്ങൾക്ക് വ്യക്തമായി ഫോർമാറ്റുകൾ (വിവിധ ഫോർമാറ്റുകളുടെ ഒബ്ജക്റ്റ് ഫയലുകൾ ലിങ്കുചെയ്യുമ്പോൾ) -b ഉപയോഗിക്കാവുന്നതാണ് .

പരിസ്ഥിതി വേരിയബിൾ "GNUTARGET" ൽ നിന്നും സ്വതവേയുള്ള ഫോർമാറ്റ് എടുക്കുന്നു.

നിങ്ങൾക്ക് "TARGET" കമാൻഡ് ഉപയോഗിച്ച് സ്ക്രിപ്റ്റിൽ നിന്നും ഇൻപുട്ട് ഫോർമാറ്റ് നിർവചിക്കാം;

-c MRI- കമാന്ഡ്ഫയല്

--mri-script = എംആർഐ-കമാൻഡ്ഫയൽ

എംആർഐ നിർമ്മിച്ച ലിങ്കേഴ്സുമായി പൊരുത്തപ്പെടുത്തുന്നതിന്, എംആർഐഎയിൽ വിവരിച്ചിരിക്കുന്ന ഒരു പകരം, നിയന്ത്രിത കമാൻഡ് ഭാഷയിലാണ് സ്ക്രിപ്റ്റ് ഫയലുകൾ സ്വീകരിക്കുന്നത്, ഗ്നു എൽഡി ഡോക്യുമെൻറുകളുടെ കസ്റ്റം സ്ക്രിപ്റ്റ് ഫയലുകളുടെ വിഭാഗം. എം-സി.ആർ. സ്ക്രിപ്റ്റ് ഫയലുകൾ ഓപ്ഷൻ- സി ഉപയോഗിച്ച് അവതരിപ്പിക്കുക ; പൊതുവായ ഉദ്ദേശ്യമുള്ള ld സ്ക്രിപ്റ്റിംഗ് ഭാഷയിൽ എഴുതിയ ലിപയർ സ്ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാൻ -T ഐച്ഛികം ഉപയോഗിക്കുക. MRI-cmdfile നിലവിലില്ലെങ്കിൽ, LD -AL ഓപ്ഷനുകൾ വ്യക്തമാക്കിയ ഡയറക്ടറികളിലേക്ക് അത് അന്വേഷിക്കുന്നു.

-d

-ഡി

-dp

ഈ മൂന്ന് ഓപ്ഷനുകൾ തുല്യമാണ്; മറ്റ് ലിങ്കുകളുമായി പൊരുത്തപ്പെടുത്തുന്നതിന് ഒന്നിലധികം ഫോമുകൾ പിന്തുണയ്ക്കുന്നു. ഒരു മാറ്റാവുന്ന ഔട്ട്പുട്ട് ഫയൽ ( -r ഉപയോഗിച്ച് ) നൽകിയിട്ടുണ്ടെങ്കിലും അവ പൊതുവായ ചിഹ്നങ്ങളിലേക്ക് സ്പെയ്സ് നൽകുന്നു. "FORCE_COMMON_ALLOCATION" എന്ന സ്ക്രിപ്റ്റ് നിർദ്ദേശത്തിന് സമാന പ്രാധാന്യമുണ്ട്.

-ഈ ലേഖനം

--entry = എൻട്രി

സ്വതവേയുള്ള എൻട്രി പോയിന്റില്ലാതെ, നിങ്ങളുടെ പ്രോഗ്രാം നടപ്പിലാക്കാൻ ആരംഭിക്കുന്നതിനുള്ള വ്യക്തമായ ചിഹ്നമായി പ്രവേശം ഉപയോഗിക്കുക. എൻട്രി എന്ന് പേരുള്ള ഒരു ചിഹ്നം ഇല്ലെങ്കിൽ, നമ്പർ ഒരു നമ്പറായി പാഴ്സുചെയ്യാൻ ശ്രമിക്കുകയും, അത് എന്ട്രി അഡ്രസ് ആയി ഉപയോഗിക്കുകയും ചെയ്യും (ആ സംഖ്യയെ അടിസ്ഥാനമാക്കി 10 എണ്ണം വ്യാഖ്യാനിക്കും; ബേസ് 16 ന്റെ മുന്നിലെ 0x സൂചിക , അടിസ്ഥാനം 8).

-E

- എക്സ്പോർട്ട്-ഡൈനാമിക്

ചലനാത്മകവുമായി ബന്ധിതമായ എക്സിക്യൂട്ടബിൾ സൃഷ്ടിക്കുമ്പോൾ, എല്ലാ ചിഹ്നങ്ങളും ഡൈനാമിക് ചിഹ്ന പട്ടികയിലേക്ക് ചേർക്കുക. ഡൈനാമിക് ചിഹ്ന പട്ടിക എന്നത് റൺ സമയത്തിൽ ചലനാത്മക വസ്തുക്കളിൽ നിന്ന് ദൃശ്യമാകുന്ന ചിഹ്നങ്ങളുടെ ഗണമാണ്.

നിങ്ങൾ ഈ ഉപാധി ഉപയോഗിക്കാറില്ലെങ്കിൽ, ഡൈനാമിക് ചിഹ്ന പട്ടികയിൽ സൂചിപ്പിക്കപ്പെടുന്ന ചില ചലനാത്മക വസ്തുക്കൾ സൂചിപ്പിക്കുന്ന ചിഹ്നങ്ങൾ മാത്രം സാധാരണയായി അടങ്ങിയിരിക്കും.

ഒരു ഡൈനാമിക് ഒബ്ജക്റ്റ് ലഭ്യമാക്കാൻ "dlopen" ഉപയോഗിച്ചാൽ, മറ്റ് ചലനാത്മക വസ്തുക്കല്ലാതെ, പ്രോഗ്രാമിന് നിർവചിച്ചിരിക്കുന്ന ചിഹ്നങ്ങളിലേക്ക് സൂചിപ്പിക്കണം, പ്രോഗ്രാമിനെ ബന്ധിപ്പിക്കുമ്പോൾ ഈ ഓപ്ഷൻ ഉപയോഗിക്കേണ്ടതായി വരും.

ഔട്ട്പുട്ട് ഫോർമാറ്റ് പിന്തുണയ്ക്കുന്നുണ്ടെങ്കിൽ ഡൈനാമിക് ചിഹ്ന പട്ടികയിലേക്ക് ഏത് ചിഹ്നങ്ങൾ ചേർക്കണമെന്നത് നിങ്ങൾക്ക് വേണമെങ്കിൽ നിങ്ങൾക്ക് പതിപ്പ് സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാവുന്നതാണ്. {VERSION} എന്നതിലെ --version-script- ന്റെ വിവരണം കാണുക.

-EB

വലിയ എൻഡ്യൻ വസ്തുതകൾ ലിങ്കുചെയ്യുക. ഇത് ഡിഫാൾട്ട് ഔട്ട്പുട്ട് ഫോർമാറ്റിനെ ബാധിക്കുന്നു.

-EL

ചെറിയ സാങ്കൽപ്പിക വസ്തുക്കളെ ലിങ്കുചെയ്യുക. ഇത് ഡിഫാൾട്ട് ഔട്ട്പുട്ട് ഫോർമാറ്റിനെ ബാധിക്കുന്നു.

-f

- സഹായകരമായ പേര്

ELF പങ്കിട്ട ഒരു വസ്തു സൃഷ്ടിക്കുമ്പോൾ, ആന്തരിക DT_AUXILIARY ഫീൽഡ് നിർദ്ദിഷ്ട പേരിലേക്ക് സജ്ജമാക്കുക. പങ്കുവെയ്ക്കപ്പെട്ട ഒബ്ജക്റ്റ് നാമത്തിന്റെ ചിഹ്ന പട്ടികയിൽ ഓക്സിലറി ഫിൽറ്റർ ആയി ഉപയോഗിക്കുന്ന ഒബ്ജക്റ്റ് പട്ടികയുടെ ചിഹ്ന പട്ടിക ഉപയോഗിയ്ക്കുന്ന ഡൈനാമിക് ലിങ്ക്നർ ഇത് പറയുന്നു.

നിങ്ങൾ ഈ ഫിൽട്ടർ ഒബ്ജക്റ്റിലേക്ക് ഒരു പ്രോഗ്രാം പിന്നീട് ലിങ്കുചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുമ്പോൾ, ഡൈനാമിക് ലിങ്കർ DT_AUXILIARY ഫീൽഡ് കാണും. ഫിൽറ്റർ ഒബ്ജക്റ്റിലെ ഏതെങ്കിലും ചിഹ്നങ്ങളെ ഡൈനാമിക് ലിങ്ക്സർ പരിഹരിക്കുന്നുവെങ്കിൽ, പങ്കിട്ട ഒബ്ജക്ട് നാമത്തിൽ ഒരു നിർവചനം നിലവിലുണ്ടോ എന്ന് ആദ്യം പരിശോധിക്കും. ഒന്ന് ഉണ്ടെങ്കിൽ, ഫിൽട്ടർ ഒബ്ജക്റ്റിലെ നിർവചനത്തിനുപകരം ഇത് ഉപയോഗിക്കും. പങ്കിട്ട വസ്തു നാമം നിലവിലില്ല. ഇങ്ങനെ ചില ഫങ്ഷനുകൾ ഒരു ബദൽ നടപ്പിലാക്കാൻ, ഒരു ഡീബഗ്ഗിങിനായി അല്ലെങ്കിൽ മെഷീൻ നിർദിഷ്ട പ്രകടനത്തിനായി പങ്കിടുന്ന വസ്തു നാമം ഉപയോഗിക്കാം.

ഈ ഐച്ഛികം ഒന്നിൽ കൂടുതൽ വ്യക്തമാക്കാം. കമാൻഡ് ലൈനിൽ അവ ദൃശ്യമാകുന്ന ക്രമത്തിൽ DT_AUXILIARY എൻട്രികൾ സൃഷ്ടിക്കപ്പെടും.

-F പേര്

- ഫിൽട്ടർ പേര്

ELF പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ, ആന്തരിക DT_FILTER ഫീൽഡ് നിർദ്ദിഷ്ട പേരിന് നൽകുക. ഇത് സൃഷ്ടിക്കുന്ന പങ്കുവെയ്ക്കപ്പെട്ട വസ്തുവിന്റെ ചിഹ്ന പട്ടികയെ ഡൈനാമിക് ലിങ്കറിനോട് പറയുന്നു. പങ്കിട്ട ഒബ്ജക്റ്റ് നാമത്തിന്റെ ചിഹ്ന പട്ടികയിൽ ഫിൽട്ടറായി ഇത് ഉപയോഗിക്കണം.

നിങ്ങൾ ഈ ഫിൽട്ടർ ഒബ്ജക്റ്റിനെതിരെ ഒരു പ്രോഗ്രാം പിന്നീട് ലിങ്കുചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുമ്പോൾ, ഡൈനാമിക് ലിങ്കർ DT_FILTER ഫീൽഡ് കാണും. സാധാരണ പോലെ ഫിൽട്ടർ ഒബ്ജക്റ്റിന്റെ ചിഹ്ന പട്ടിക അനുസരിച്ച് ഡൈനാമിക് ലിങ്കർ ചിഹ്നങ്ങൾ പരിഹരിക്കും, പക്ഷേ ഇത് യഥാർത്ഥത്തിൽ പങ്കിട്ട ഒബ്ജക്ട് നാമത്തിൽ കാണുന്ന നിർവചനങ്ങളുമായി ലിങ്കുചെയ്യും. ഒബ്ജക്റ്റ് നാമത്തിൽ നൽകിയിരിക്കുന്ന ചിഹ്നങ്ങളുടെ ഒരു ഉപസെറ്റ് തിരഞ്ഞെടുക്കാൻ ഫിൽട്ടർ ഒബ്ജക്റ്റ് ഉപയോഗിക്കാം.

ഇൻപുട്ട്, ഔട്ട്പുട്ട് ഒബ്ജക്റ്റ് ഫയലുകൾക്കുള്ള ഒബ്ജക്റ്റ്-ഫയൽ ഫോർമാറ്റ് വ്യക്തമാക്കുന്ന ഒരു കംപ്ലേഷൻ ടൂൾചെയിൻ ഉടനീളം ചില പഴയ ലിങ്കറുകൾ -F ഐച്ഛികം ഉപയോഗിച്ചു. ഇതിനായി ഗ്നു ലിങ്കർ മറ്റ് പ്രവർത്തന രീതികൾ ഉപയോഗിയ്ക്കുന്നു: -b , --format , --oformat ഉപാധികൾ, ലിങ്കർ സ്ക്രിപ്റ്റുകളിലെ "TARGET" കമാൻഡ്, "GNUTARGET" എൻവിറോൺമെൻറ് വേരിയബിൾ. ELF പങ്കുവെച്ച ഒബ്ജക്റ്റ് ഉണ്ടാക്കുന്ന സമയത്ത് ഗ്നു Linker -F ഐച്ഛികം അവഗണിക്കും.

-ഫിനിയുടെ പേര്

എല്എഫിന്റെ എക്സിക്യൂട്ടബിള് അല്ലെങ്കില് പങ്കുവെയ്ക്കപ്പെട്ട വസ്തു സൃഷ്ടിക്കുമ്പോള്, എക്സിക്യൂട്ടബിള് അല്ലെങ്കില് പങ്കുവെയ്ക്കപ്പെട്ട ഒബ്ജക്റ്റ് ഡൌണ്ലോഡ് ചെയ്യുമ്പോള് NAME വിളിക്കുക, ഫംഗ്ഷന്റെ വിലാസത്തിലേക്ക് DT_FINI സജ്ജമാക്കിക്കൊണ്ട്. സ്ഥിരസ്ഥിതിയായി, കോൾ ചെയ്യുന്നതിനായി ഫങ്ഷനെ "_fini" ഉപയോഗിക്കുന്നു.

-g

അവഗണിച്ചു. മറ്റ് ഉപകരണങ്ങളുമായി പൊരുത്തപ്പെടുന്നതിന്.

-G മൂല്യം

--gpsize = മൂല്ല്യം

ജിപി റജിസ്റ്റർ വലുപ്പം ഉപയോഗിച്ച് ഒപ്റ്റിമൈസ് ചെയ്യുന്ന പരമാവധി വലുപ്പത്തിലുള്ള വസ്തുക്കളെ സജ്ജമാക്കുക. ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകൾക്ക് MIPS ECOFF പോലുളള അർത്ഥമാക്കുന്നത് മാത്രമല്ല, ചെറിയതും ചെറിയ വസ്തുക്കളും വിവിധ ഭാഗങ്ങളിൽ ഇടുന്നതിനെ പിന്തുണയ്ക്കുന്നു. ഇത് മറ്റ് ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകളിൽ അവഗണിക്കും.

-h പേര്

-സഞ്ജാനം = പേര്

ELF പങ്കിട്ട ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ, ആന്തരിക DT_SONAME ഫീൾഡ് നിർദ്ദിഷ്ട പേരിന് നൽകുക. എക്സിക്യൂട്ടബിൾ ഒരു DT_SONAME ഫീൽഡ് ഉള്ള പങ്കുവെച്ച ഒബ്ജക്ടുമായി ബന്ധപ്പെടുമ്പോൾ, എക്സിക്യൂട്ടബിൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ ഡൈനാമിക് ലിങ്കർ ലിങ്കറിനായുള്ള ഫയൽ നാമം ഉപയോഗിക്കുന്നതിന് പകരം DT_SONAME ഫീൽഡ് വ്യക്തമാക്കിയ പങ്കിട്ട ഒബ്ജക്റ്റ് ലോഡ് ചെയ്യാൻ ശ്രമിക്കും.

-i

ഒരു വർദ്ധിച്ച ലിങ്ക് നടപ്പിലാക്കുക (ഓപ്ഷൻ -ആർ ആയിരിക്കണം ).

- പേര്

എല്എഫിന്റെ എക്സിക്യൂട്ടബിള് അല്ലെങ്കില് പങ്കുവെയ്ക്കപ്പെട്ട വസ്തു സൃഷ്ടിക്കുമ്പോള്, എക്സിക്യൂട്ടബിള് അല്ലെങ്കില് പങ്കുവെയ്ക്കപ്പെട്ട വസ്തു ലോഡുചെയ്തിരിക്കുമ്പോള് NAME വിളിക്കുക, DACINIT ഫംഗ്ഷന്റെ വിലാസം ഉപയോഗിച്ച്. സ്ഥിരസ്ഥിതിയായി, കോൾ ചെയ്യുന്നതിനുള്ള ചടങ്ങായി ലിങ്ക് "_ഇനിറ്റ്" ഉപയോഗിക്കുന്നു.

-l ആർക്കൈവ്

--library = ആർക്കൈവ് ചെയ്യുക

ലിങ്കുചെയ്യുന്നതിനുള്ള ഫയലുകളുടെ പട്ടികയിലേക്ക് ആർക്കൈവ് ഫയൽ ആർക്കൈവ് ചേർക്കുക. ഈ ഐച്ഛികം എപ്പോൾ വേണമെങ്കിലും ഉപയോഗിയ്ക്കാം. വ്യക്തമാക്കിയ ഓരോ ആർക്കൈവിനും "libarchive.a" എന്നതിന്റെ സന്ദർഭങ്ങളിൽ ld അതിന്റെ പാത്ത് ലിസ്റ്റും തിരയുന്നു.

പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന സിസ്റ്റങ്ങളിൽ, ld ".a" എന്നതിനേക്കാളും കൂടുതൽ വിപുലീകരണങ്ങളുമുള്ള ലൈബ്രറികൾക്കായി തെരയാവുന്നതാണ്. പ്രത്യേകിച്ച്, ELF, SunOS സിസ്റ്റങ്ങളിൽ, ".a" എന്ന എക്സ്റ്റെൻഷനോട് കൂടി തിരഞ്ഞുകൊണ്ട് ".so" എന്ന എക്സ്റ്റെൻഷൻ ഉപയോഗിച്ച് ഒരു ലൈബ്രറിക്കായി ഒരു ഡയറക്ടറി ld തിരയും. കൺവെൻഷൻ പ്രകാരം ഒരു ".so" വിപുലീകരണം ഒരു പങ്കിട്ട ലൈബ്രറി സൂചിപ്പിക്കുന്നു.

കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയ ലൊക്കേഷനിൽ, ലിങ്ക് ഒരു ആർക്കൈവ് മാത്രം തിരയുന്നു. ആർക്കൈവ് കമാൻഡ് ലൈനിലെ ആർക്കൈവിൽ വരുന്ന ചില ഒബ്ജക്റ്റുകളിൽ നിർവചിച്ചിട്ടില്ലാത്ത ഒരു ചിഹ്നം നിർവ്വചിക്കുകയാണെങ്കിൽ, ആർക്കൈവിൽ നിന്നും ഉചിതമായ ഫയൽ (കൾ) ഉൾപ്പെടുത്തുന്നു. എന്നിരുന്നാലും, കമാൻഡ് ലൈനിൽ പിന്നീട് പ്രത്യക്ഷപ്പെടുന്ന ഒരു വസ്തുവിൽ നിർവചിക്കാത്ത ഒരു ചിഹ്നം വീണ്ടും ആർക്കൈവ് തിരയാനായില്ല.

കാണുക - ( ആർക്കൈവുകൾ ഒന്നിലധികം തവണ തിരയാൻ ലിങ്ക്ഡർ നിർബന്ധിക്കുന്നതിനുള്ള മാർഗത്തിനുള്ള ഓപ്ഷൻ.

കമാൻഡ് ലൈനിൽ നിങ്ങൾ ഒന്നിലധികം തവണ ഒരേ ആർക്കൈവ് ലിസ്റ്റ് ചെയ്യാം.

ഈ തരം ആർക്കൈവ് തിരയലും യുണിക്സ് ലിങ്കേഴ്സിന് സ്റ്റാൻഡേർഡാണ്. എന്നിരുന്നാലും, നിങ്ങൾ ld ഓഎഎൻഐസി ഉപയോഗിയ്ക്കുന്നുണ്ടെങ്കിൽ, ഇത് AIX ലിങ്കണിയുടെ പ്രവർത്തനരീതിയിൽ നിന്ന് വ്യത്യസ്തമാണെന്ന് ഓർക്കുക.

-L തിരയൽ

--library-path = searchdir

ആർട്ട്വൈവ് ലൈബ്രറികൾക്കും ld കണ്ട്രോൾ സ്ക്രിപ്റ്റുകൾക്കും ld തിരയാനുള്ള പാഥുകളുടെ പട്ടികയിലേക്ക് path searchirir ചേർക്കുക. നിങ്ങൾക്ക് ഈ ഓപ്ഷൻ എത്ര പ്രാവശ്യം ഉപയോഗിക്കാം. കമാന്ഡ് ലൈനില് അവ നല്കിയ ക്രമത്തില് തട്ടുകള് തിരയുകയും ചെയ്യുന്നു. കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയ ഡയറക്ടറികൾ സഹജമായ ഡയറക്ടറികൾക്ക് മുമ്പ് തിരഞ്ഞു. ഓപ്ഷനുകൾ പ്രത്യക്ഷപ്പെടുന്ന ക്രമമില്ലാതെ , എല്ലാ -L ഐച്ഛികങ്ങളും എല്ലാ -l ഓപ്ഷനുകൾക്കും ബാധകമാണ്.

"=" എന്ന് തെരയുക ആരംഭിച്ചാൽ, "=", എസ്എസ്റോട്ട് പ്രിഫിക്സ് , ലിങ്ക് ക്രമീകരിയ്ക്കുമ്പോൾ വ്യക്തമാക്കുന്ന ഒരു പാത്ത് മാറ്റി സ്ഥാപിക്കും.

തിരയുന്ന പാഥുകളുടെ സ്വതവേയുള്ള സെറ്റ് ( -ലി-ൽ വ്യക്തമാക്കിയിട്ടുമില്ല) എമുലേഷൻ മോഡ് ld ഉപയോഗിയ്ക്കുന്നതായും അതു് ക്രമീകരിച്ചിരിയ്ക്കുന്നതെങ്ങനെ എന്നും സൂചിപ്പിക്കുന്നു.

"SEARCH_DIR" കമാന്ഡിനൊപ്പമുള്ള ലിങ്ക് ലിപിയിൽ പാഥുകൾ നൽകാം. ഈ രീതിയിൽ സൂചിപ്പിക്കുന്ന ഡയറക്ടറികൾ കമാൻഡ് ലൈനിൽ ലിങ്കർ സ്ക്രിപ്റ്റ് ലഭ്യമാകുന്ന ഘട്ടത്തിൽ തിരഞ്ഞു.

-എം എമുലേഷൻ

എമുലേഷൻ ലിങ്ക് കൈകാര്യം ചെയ്യുക. ലഭ്യമായ എമഎലേഷനുകൾ --verbose അല്ലെങ്കിൽ -V ഐച്ഛികങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പട്ടികപ്പെടുത്താം.

-m ഐച്ഛികം ഉപയോഗിയ്ക്കുന്നില്ലെങ്കിൽ, "LDEMULATION" എൻവയോൺമെന്റ് വേരിയബിളിൽ നിന്നും എമ്യുലേഷൻ എടുത്തുകാണിക്കുന്നു.

അല്ലെങ്കിൽ, ഡിഫോൾട്ട് എമ്യുലേഷൻ ലിങ്ക് എങ്ങനെ ക്രമീകരിക്കും എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു.

-M

- പ്രിന്റ് മാപ്പ്

സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്ക് ഒരു ലിങ്ക് മാപ്പ് പ്രിന്റുചെയ്യുക. ലിങ്ക് സംബന്ധിച്ച വിവരങ്ങൾ ഒരു ലിങ്ക് മാപ്പ് നൽകുന്നു, അവയിൽ ഉൾപ്പെടുന്നു:

*

ഒബ്ജക്റ്റ് ഫയലുകളും ചിഹ്നങ്ങളും മെമ്മറിയിലേക്ക് മാപ്പുചെയ്യുന്നയിടത്ത്.

*

പൊതുവായ ചിഹ്നങ്ങൾ അനുവദിക്കുന്നതെങ്ങനെ.

*

ആർക്കൈവ് അംഗം കൊണ്ടുവരുന്നതിന് കാരണമായ ചിഹ്നത്തെ സൂചിപ്പിച്ച്, എല്ലാ ആർക്കൈവ് അംഗങ്ങളും ലിങ്ക് ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.

-n

--nmagic

വിഭാഗങ്ങളുടെ പേജ് വിന്യാസം ഓഫ് ചെയ്യുക, ഔട്ട്പുട്ട് സാധ്യമെങ്കിൽ ഔട്ട്പുട്ട് "NMAGIC" എന്ന് അടയാളപ്പെടുത്തുക.

-N

- യോജിക്ക്

വായിക്കാവുന്നതും എഴുതാവുന്നതും ആയി ടെക്സ്റ്റും ഡാറ്റ വിഭാഗങ്ങളും സജ്ജമാക്കുക. അതോടൊപ്പം, ഡാറ്റ സെഗ്മെന്റിൽ പേജ്-വിന്യസിക്കരുത്, കൂടാതെ പങ്കിട്ട ലൈബ്രറികളുമായി ലിങ്കുചെയ്യുന്നത് അപ്രാപ്തമാക്കുക. ഔട്ട്പുട്ട് ഫോർമാറ്റ് യുണിക്സ് സ്റ്റൈൽ മാജിക് സംഖ്യകളെ പിന്തുണയ്ക്കുന്നുവെങ്കിൽ, ഔട്ട്പുട്ട് "OMAGIC" എന്ന് അടയാളപ്പെടുത്തുക.

- അല്ല-omagic

-N ഐച്ഛികത്തിന്റെ പല ഫലങ്ങളും ഈ ഐച്ഛികം ഉപേക്ഷിയ്ക്കുന്നു . ഇത് വായന-മാത്രം ചെയ്യേണ്ട വാചക വിഭാഗം സജ്ജീകരിച്ചിരിക്കുന്നു, ഒപ്പം ഡാറ്റ സെഗ്മെന്റ് പേജ്-വിന്യസിച്ചിരിക്കുന്നതിന് പ്രേരിപ്പിക്കുകയും ചെയ്യുന്നു. കുറിപ്പു് - പങ്കിട്ട ലൈബ്രറികളുമായി ബന്ധപ്പെടുത്തുന്നതിനു് ഈ ഐച്ഛികം അനുവദിയ്ക്കുന്നില്ല. ഇതിനായി -ബിഡമിക് ഉപയോഗിക്കുക.

-O ഔട്ട്പുട്ട്

--output = ഔട്ട്പുട്ട്

Ld ഉൽപ്പാദിപ്പിക്കുന്ന പ്രോഗ്രാം പ്രോഗ്രാമുകളുടെ പേരുമായി ഔട്ട്പുട്ട് ഉപയോഗിക്കുക. ഈ ഉപാധി വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, a.out എന്ന പേര് സ്ഥിരസ്ഥിതിയായി ഉപയോഗിയ്ക്കുന്നു. "OUTPUT" എന്ന സ്ക്രിപ്റ്റ് കമാൻഡ് ഔട്ട്പുട്ട് ഫയൽ നാമവും വ്യക്തമാക്കാം.

-O നില

പൂജ്യം പൂജ്യത്തിൽ ld എന്നതിനേക്കാൾ വലിയ ഒരു സംഖ്യാ മൂല്യമാണ് ഔട്ട്പുട്ട് ഒപ്റ്റിമൈസ് ചെയ്യുന്നത്. ഇത് വളരെ ദൈർഘ്യമേറിയതായി കണക്കാക്കാം, അതിനാൽ അവസാനത്തെ ബൈനറിയിൽ മാത്രമേ അത് പ്രവർത്തനക്ഷമമാക്കപ്പെടുകയുള്ളൂ.

-ഖാ

- ഇ-മെയിലുകൾ മാറ്റുന്നു

പൂർണ്ണമായി ബന്ധിപ്പിച്ച exececutables ലെ മാറ്റിസ്ഥാപിക്കൽ വിഭാഗങ്ങളും ഉള്ളടക്കങ്ങളും ഉപേക്ഷിക്കുക. എക്സിക്യൂട്ടബിളുകളുടെ ശരിയായ പരിഷ്ക്കരണങ്ങൾ നടത്താൻ പോസ്റ്റ് വിവരം വിശകലനം, ഓപ്റ്റിമൈസേഷൻ ഉപകരണങ്ങൾ എന്നിവയ്ക്ക് ആവശ്യമായി വരും. ഇത് വലിയ എക്സിക്യൂട്ടബിളുകളിലാണ്.

ഈ ഓപ്ഷൻ നിലവിൽ എൽഎൽഎഫ് പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ പിന്തുണയ്ക്കുന്നുള്ളൂ.

-ആർ

- ഭരണം

മാറിപ്പോവാവുന്ന ഔട്ട്പുട്ട് ഉണ്ടാക്കുക --- അതായത്, ഒരു ഔട്ട്പുട്ട് ഫയൽ സൃഷ്ടിക്കാൻ കഴിയും, അത് ഇൻപുട്ട് ആയി ld എന്നപോലെ നൽകുന്നു. ഇത് പലപ്പോഴും ഭാഗിക ലിങ്കുകൾ എന്നു പറയുന്നു . യുണിക്സ് മാജിക് സംഖ്യകളെ പിന്തുണയ്ക്കുന്ന പരിതസ്ഥിതികളിൽ ഒരു വശത്തെ ഫലമായി, ഈ ഐച്ഛികം ഔട്ട്പുട്ട് ഫയലിന്റെ മാന്ത്രിക സംഖ്യ "OMAGIC" ആയി സജ്ജീകരിക്കുന്നു. ഈ ഉപാധി വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഒരു ആബ്സല്യൂട്ട് ഫയൽ ഉൽപ്പെടുത്തിയിരിക്കുന്നു. C ++ പ്രോഗ്രാമുകൾ ലിങ്കുചെയ്യുമ്പോൾ, കൺസ്ട്രക്റ്റർമാർക്കുള്ള റെഫറൻസുകൾ ഈ ഓപ്ഷൻ തീർപ്പാക്കില്ല; അത് ചെയ്യാൻ, ഉപയോഗിക്കുക -ഉപയോഗിക്കുക .

ഒരു ഇൻപുട്ട് ഫയലിൽ ഔട്ട്പുട്ട് ഫയലിന്റെ അതേ ഫോർമാറ്റ് ഉണ്ടാകാതിരിക്കുമ്പോൾ, ആ ഇൻപുട്ട് ഫയലിൽ യാതൊരു ബന്ധവുമില്ലെങ്കിൽ മാത്രം ഭാഗിക ലിങ്കുകൾ പിന്തുണയ്ക്കുന്നു. വ്യത്യസ്ത ഔട്ട്പുട്ട് ഫോർമാറ്റുകൾക്ക് കൂടുതൽ നിയന്ത്രണങ്ങളുണ്ടാക്കാം; ഉദാഹരണത്തിന്, ചില "a.out" അടിസ്ഥാന ഫോർമാറ്റുകൾ മറ്റ് ഫോർമാറ്റുകളിൽ ഇൻപുട്ട് ഫയലുകളുമായി മാത്രം ഭാഗികബന്ധം പിന്തുണയ്ക്കുന്നില്ല.

ഈ ഐച്ഛികം -i പോലെ തന്നെയാണു്.

-R ഫയൽനാമം

--just-symbols = ഫയൽനാമം

ഫയൽ നാമത്തിൽ നിന്നുള്ള ചിഹ്ന പേരുകളും അവയുടെ വിലാസങ്ങളും വായിക്കുക, പക്ഷേ അത് മാറ്റി വയ്ക്കുക അല്ലെങ്കിൽ ഉൽപാദനത്തിൽ ഉൾപ്പെടുത്തുകയോ ചെയ്യരുത്. ഇത് നിങ്ങളുടെ ഔട്ട്പുട്ട് ഫയൽ മറ്റ് പ്രോഗ്രാമുകളിൽ നിർവചിച്ചിരിക്കുന്ന മെമ്മറിയുടെ കേവല സ്ഥാനങ്ങളിലേക്ക് പ്രതീകമായി സൂചിപ്പിക്കാൻ അനുവദിക്കുന്നു. ഒന്നിൽ കൂടുതൽ തവണ നിങ്ങൾക്ക് ഈ ഐച്ഛികം ഉപയോഗിക്കാം.

മറ്റ് എൽഎൽഎഫ് ലിങ്കേഴ്സിനു് പൊരുത്തപ്പെടുന്നതിനു്, -R ഐച്ഛികം ഒരു ഫയലിന്റെ പേരു് പകരം ഡയറക്ടറി നാമം നൽകിയിട്ടുണ്ടെങ്കിൽ, -rpath ഐച്ഛികമായി ഇത് കണക്കാക്കുന്നു.

-s

--strip- എല്ലാം

ഔട്ട്പുട്ട് ഫയലിൽ നിന്ന് എല്ലാ ചിഹ്ന വിവരങ്ങളും ഒഴിവാക്കുക.

-S

--strip-debug

ഔട്ട്പുട്ട് ഫയലിൽ ഡീബഗ്ഗർ ചിഹ്ന വിവരം (പക്ഷേ എല്ലാ ചിഹ്നങ്ങളല്ല) ഒഴിവാക്കുക.

-t

--trace

ഇൻപുട്ട് ഫയലുകളുടെ പേരുകൾ ld പ്രോസസ്സുകളായി അച്ചടിക്കുക.

-T സ്ക്രിപ്റ്റ്ഫയൽ

--script = സ്ക്രിപ്റ്റ്ഫയൽ

സ്ക്രിപ്റ്റ്ഫയൽ ലിങ്കർ സ്ക്രിപ്റ്റ് ആയി ഉപയോഗിക്കുക. ഈ സ്ക്രിപ്റ്റ് ld 's default linker script ( ഇതിലേക്ക് ചേർക്കാതെ ) മാറ്റിസ്ഥാപിക്കുന്നു , അതിനാൽ ഔട്ട്പുട്ട് ഫയൽ വിശദീകരിക്കുന്നതിന് കമാൻഡൈൽ എല്ലാം നൽകണം. നിലവിലെ ഡയറക്ടറിയിൽ scriptfile നിലവിലില്ലെങ്കിൽ, മുൻനിര- എൽ ഓപ്ഷനുകൾ സൂചിപ്പിച്ചിരിക്കുന്ന ഡയറക്ടറികളിൽ "ld" അതിനെ അന്വേഷിക്കുന്നു. ഒന്നിലധിക-ടി ഐച്ഛികങ്ങൾ കൂട്ടിച്ചേർക്കുന്നു.

-u ചിഹ്നം

--oundefined = ചിഹ്നം

ഔട്ട്പുട്ട് ഫയലിൽ ഒരു നിർവചിക്കാത്ത ചിഹ്നമായി ഫോഴ്സ് ചിഹ്നം നൽകപ്പെടും. ഇത് ചെയ്യുന്നത്, ഉദാഹരണത്തിന്, സ്റ്റാൻഡേർഡ് ലൈബ്രറികളിൽ നിന്നുള്ള കൂടുതൽ മൊഡ്യൂളുകൾ ലിങ്കുചെയ്യുന്നത് പ്രവർത്തനക്ഷമമാകും. അധികമായ നിർവചിക്കാത്ത ചിഹ്നങ്ങളിൽ പ്രവേശിക്കുന്നതിന് വ്യത്യസ്ത ഓപ്ഷൻ ആർഗ്യുമെന്റുകൾ ഉപയോഗിച്ച് നിങ്ങൾ ആവർത്തിച്ചിരിക്കണം. ഈ ഐച്ഛികം "EXTERN" ലിങ്കർ സ്ക്രിപ്റ്റ് കമാന്ഡിന് തുല്യമാണ്.

- അല്ല

C ++ പ്രോഗ്രാമുകൾ ഒഴികെ, ഈ ഓപ്ഷൻ -r ന് തുല്യമാണ്: അത് മാറ്റാവുന്ന ഔട്ട്പുട്ട് സൃഷ്ടിക്കുന്നു --- അതായത്, ld- ൽ ഇൻപുട്ട് ആയി നൽകാൻ കഴിയുന്ന ഒരു ഔട്ട്പുട്ട് ഫയൽ. സി ++ പ്രോഗ്രാമുകളുമായി ബന്ധപ്പെടുത്തുമ്പോൾ, -r- ൽ നിന്ന് വ്യത്യസ്തമായി നിർമ്മാതാക്കൾക്ക് റഫറൻസുകൾ പരിഹരിക്കുന്നു. അതുപയോഗിക്കുന്നത് -ഉപയോക്താക്കുമായി ബന്ധപ്പെട്ട ഫയലുകൾ -ഉപയോഗിക്കുന്നതല്ല . കൺസ്ട്രക്ടർ ടേബിൾ നിർമ്മിച്ച് കഴിഞ്ഞാൽ അത് കൂട്ടിച്ചേർക്കാൻ കഴിയില്ല. അവസാന ഭാഗത്തിന് മാത്രം ഉപയോഗിക്കുക, മറ്റുള്ളവർക്ക് -r

- unique [= SECTION ]

SECTION പൊരുത്തപ്പെടുന്ന എല്ലാ ഇൻപുട്ട് സെക്ഷനുകൾക്കും പ്രത്യേകം ഔട്ട്പുട്ട് സെക്ഷൻ നിർമ്മിക്കുന്നു, അല്ലെങ്കിൽ ഓരോ ഓഫൻ ഇൻപുട്ട് വിഭാഗത്തിനും ഓപ്ഷണൽ വൈൽഡ്കാർഡ് SECTION ആർഗ്യുമെന്റ് കാണുന്നില്ലെങ്കിൽ. ഒരു അനാഥ വിഭാഗം എന്നത് ഒരു ലിങ്ക് ലിപറിൽ പ്രത്യേകമായി പരാമർശിക്കപ്പെടാത്ത ഒന്നാണ്. കമാൻഡ് ലൈനിൽ നിങ്ങൾ ഈ ഐച്ഛികം പല പ്രാവശ്യം ഉപയോഗിയ്ക്കാം; ഇത് ഇൻപുട്ട് വിഭാഗങ്ങളുടെ സാധാരണ ലയനവും ഇതേ പേരിൽ തന്നെ തടയുന്നു. ഇത് ഒരു ലിറ്റർ സ്ക്രിപ്റ്റിലെ ഔട്ട്പുട്ട് വിഭാഗം അസൈൻമെന്റുകളെ അസാധുവാക്കുന്നു.

-v

- പതിപ്പ്

-വി

Ld എന്നതിന്റെ പതിപ്പ് നമ്പർ പ്രദർശിപ്പിക്കുക. -V ഐച്ഛികം പിന്തുണയ്ക്കുന്ന എമുലേഷനുകളും ലഭ്യമാക്കുന്നു.

-x

- ഡിസ്കാർഡ്-എല്ലാം

എല്ലാ പ്രാദേശിക ചിഹ്നങ്ങളും ഇല്ലാതാക്കുക.

-X

- ഡിസ്കാർഡ്-ലോക്കലുകൾ

താൽക്കാലിക പ്രാദേശിക ചിഹ്നങ്ങൾ ഇല്ലാതാക്കുക. മിക്ക ടാർഗെറ്റുകൾക്കും, ഇത് പ്രാദേശിക ചിഹ്നങ്ങളാണുള്ളത്, പേരുകൾ L ൽ ആരംഭിക്കുന്നു.

-ഒരു ചിഹ്നം

--trace-symbol = ചിഹ്നം

ചിഹ്നമായ ഏത് ലിങ്കുചെയ്ത ഫയലിന്റെ പേര് അച്ചടിക്കുക. ഈ ഓപ്ഷൻ എത്ര തവണ നൽകാം. പല സിസ്റ്റങ്ങളിലും ഒരു അടിവരകൾ തയ്യാറാക്കേണ്ടതുണ്ട്.

നിങ്ങളുടെ ലിങ്കിലെ ഒരു നിർവചിക്കാത്ത ചിഹ്നം നിങ്ങൾക്കില്ലെങ്കിൽ ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്, പക്ഷെ റഫറൻസ് എവിടെ നിന്നാണ് വരുന്നതെന്ന് അറിയില്ല.

- അതെ പാത

സ്ഥിര ലൈബ്രറി തിരയൽ പാതയിലേക്ക് പാത ചേർക്കുക. ഈ ഐച്ഛികം സോളാരിസ് കോംപാറ്റിബിളിറ്റിക്ക് ലഭ്യമാണ്.

-z കീവേഡ്

അംഗീകൃത കീവേഡുകൾ "initfirst", "ഇടപെടുക", "loadfltr", "nodefaultlib", "നോഡിലെറ്റ്", "നോഡ്ലോപൻ", "നോഡംപ്", "ഇപ്പോൾ", "ഉത്ഭവം", "കോബ്രെബ്രോക്ക്", "നോകാം ബ്രേക്ക്" ". സോളാരിസ് അനുയോജ്യതയ്ക്കായി മറ്റ് കീവേഡുകൾ അവഗണിക്കപ്പെടുന്നു. "initfirst" ഓബ്ജറ്റില് മറ്റെവിടെയെങ്കിലും ഓതുന്നതിന് മുമ്പ് ഓര്ഗനൈസേഷന് ആരംഭിക്കുന്നതായി അടയാളപ്പെടുത്തിയിരിക്കുന്നു. "ചലിപ്പിക്കുക" അതിന്റെ ചിഹ്ന പട്ടിക എല്ലാ ചിഹ്നങ്ങളുടെയും മുന്നിൽ ഒതുങ്ങുന്നു, പക്ഷേ പ്രാഥമിക എക്സിക്യൂട്ടബിൾ ആണ് "loadfltr" പ്രവർത്തിപ്പിക്കുന്നത് അതിന്റെ റൺടൈമുകൾ റൺടൈം സമയത്ത് ഉടൻ പ്രോസസ്സ് ചെയ്യപ്പെട്ട വസ്തുവിനെ അടയാളപ്പെടുത്തും.ഈ വസ്തുവിന്റെ ഡിപൻഡൻസികൾക്കായുള്ള തിരയൽ അവഗണിക്കില്ല എന്ന വസ്തുവിനെ അടയാളപ്പെടുത്തുന്നു "nodefaultlib" ഏതെങ്കിലും സ്ഥിര ലൈബ്രറി തിരയൽ പാത്തുകൾ. റൺടൈനില് ഒബ്ജക്റ്റ് ഡൌണ്ലോഡ് ചെയ്യാന് പാടില്ല "നോഡ്ലെറ്റ്" അടയാളപ്പെടുത്തുന്നു. "nodlopen" വസ്തുവിനെ "dlopen" എന്ന് കാണുന്നില്ല. "nodump" marks ഈ വസ്തു "dldump" വഴി ഉപേക്ഷിക്കാനാവില്ല. "ഇപ്പോള്" ഒബ്ജക്റ്റ് നോൺ സോസി റൈറ്റ് ടൈം ബൈൻഡിങ്ങിൽ അടയാളപ്പെടുത്തിയിരിക്കുന്നു. "ഒറിജിനൽ" മാർക്കുകളിൽ ഈ ഒബ്ജക്റ്റ് ORIGIN അടങ്ങിയിരിക്കാം. "defs" നിർവചിച്ചിട്ടില്ലാത്ത ചിഹ്നങ്ങളെ അനുവദിക്കുന്നില്ല. "muldefs" ഒന്നിലധികം നിർവ്വചനങ്ങൾ അനുവദിക്കുന്നു. "combreloc" ഒന്നിലധികം റീച്ച് വിഭാഗങ്ങൾ കൂട്ടിച്ചേർക്കുകയും, അവ ഡൈനാമിക് ചിഹ്നം തിരയൽ കാഷെ ചെയ്യാൻ സാധ്യമാക്കുന്ന തരത്തിലാക്കുകയും ചെയ്യുന്നു.

"nocombreloc" ഒന്നിലധികം റീലോക്ക് വിഭാഗങ്ങൾ സംയോജിപ്പിക്കുന്നത് അപ്രാപ്തമാക്കുന്നു. "nocopyreloc" പകര്പ്പടരെ ഉൽപാദിപ്പിക്കുന്നത് പ്രവർത്തനരഹിതമാക്കുന്നു.

- ( ആർക്കൈവുകൾ -)

--start-group ആർക്കൈവുകൾ --end-group

ആർക്കൈവ് ഫയലുകൾ ആർക്കൈവ് ഫയലുകളുടെ ഒരു ലിമായിരിക്കണം . അവ വ്യക്തമായ ഫയൽ നാമങ്ങൾ അല്ലെങ്കിൽ -l ഓപ്ഷനുകൾ ആയിരിക്കും.

പുതിയ നിർവചിക്കാത്ത റെഫറൻസുകൾ സൃഷ്ടിക്കപ്പെടുന്നതുവരെ നിർദ്ദിഷ്ട ആർക്കൈവുകൾ ആവർത്തിച്ചു തിരയാറുണ്ട്. സാധാരണ, ഒരു ആർക്കൈവ് കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയ ക്രമത്തിൽ മാത്രം ഒരിക്കൽ തിരഞ്ഞു. ആ ആർക്കൈവിലുള്ള ഒരു ചിഹ്നം പിന്നീട് കമാൻഡ് ലൈനിൽ ദൃശ്യമാകുന്ന ഒരു ആർക്കൈവിൽ പരാമർശിച്ചിരിക്കുന്ന ഒരു നിർവചിക്കപ്പെടാത്ത ചിഹ്നം പരിഹരിക്കുന്നതിന് ആവശ്യമെങ്കിൽ, ആ റഫറൻസറിനെ പരിഹരിക്കുന്നതിന് ലിങ്കറില്ല. ആർക്കൈവുകൾ ഗ്രൂപ്പുചെയ്യുന്നതിലൂടെ, സാധ്യമായ എല്ലാ റഫറൻസുകളും പരിഹരിക്കപ്പെടുന്നതുവരെ അവ ആവർത്തിച്ചു തിരയാനും കഴിയും.

ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നത് പ്രധാനപ്പെട്ട ഒരു പ്രകടന ചെലവാണ്. രണ്ടോ അതിലധികമോ ആർക്കൈവുകളിൽ നിന്ന് ഒഴിവാക്കാനാവാത്ത വൃത്താകാര റഫറൻസുകളുണ്ടെങ്കിൽ മാത്രമേ അത് ഉപയോഗിക്കാൻ കഴിയുകയുള്ളൂ.

--cept-unknown-input-arch

--no-accept-unknown-input-arch

ആർക്കിറ്റക്ചർ അംഗീകരിക്കാൻ കഴിയില്ലെന്ന ഇൻപുട്ട് ഫയലുകളും സ്വീകരിക്കുന്നതിന് ലിങ്കറിനോട് പറയുന്നു. അവർ ചെയ്യുന്നതെന്താണെന്ന് ഉപയോക്താവിനും മനസിലാകാത്തത് അജ്ഞാതമായ ഇൻപുട്ട് ഫയലുകളിൽ ലിങ്ക് ചെയ്യാൻ ആഗ്രഹിക്കുന്നുവെന്നതാണ് അനുമാനം എന്നത്. 2.14 റിലീസ് ചെയ്യുന്നതിനു മുമ്പ്, ലിങ്കറിൻറെ സ്വതവേയുള്ള രീതിയായിരുന്നു ഇത്. 2.14 ആയതിനാലാണു് സ്വതവേയുള്ള പെരുമാറ്റങ്ങൾ അത്തരം ഇൻപുട്ട് ഫയലുകളെ തിരസ്കരിക്കുന്നതു്, അതിനാൽ പഴയ പെരുമാറ്റത്തെ പുനഃസ്ഥാപിക്കുന്നതിനായി --accept-unknown-input-arch ഐച്ഛികം ചേർത്തിരിയ്ക്കുന്നു.

-സൌസർ കീവേഡ്

SunOS കോംപാറ്റിബിളിറ്റി ഈ ഐച്ഛികം അവഗണിക്കപ്പെടുന്നു.

-ബിഡിനമിക്

-ഡി

-call_shared

ഡൈനാമിക് ലൈബ്രറികളുമായി ലിങ്കുചെയ്യുക. പങ്കിട്ട ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്ന പ്ലാറ്റ്ഫോമുകളിൽ ഇത് അർത്ഥപൂർണ്ണമാണ്. ഇത്തരത്തിലുള്ള പ്ലാറ്റ്ഫോമുകളിൽ സാധാരണ ഈ ഉപാധി സ്വതവേയുള്ളതാണ്. വിവിധ സിസ്റ്റങ്ങളിലുള്ള പൊരുത്തത്തിനാണു് ഈ ഐച്ഛികത്തിന്റെ വ്യത്യസ്ഥമായ വേരിയന്റുകൾ. കമാൻഡ് ലൈനിൽ നിങ്ങൾക്ക് ഈ ഐച്ഛികം പല പ്രാവശ്യം ഉപയോഗിക്കാം: -l ഓപ്ഷൻ ഉപയോഗിച്ച് ഇത് പിന്തുടരുക ലൈബ്രറി അന്വേഷിക്കുന്നു.

-ഗ്രൂപ്പ്

ഡൈനാമിക് വിഭാഗത്തിൽ "DT_FLAGS_1" എൻട്രിയിലെ "DF_1_GROUP" ഫ്ലാഗ് സജ്ജമാക്കുക. ഈ ഒബ്ജക്റ്റിൽ ലുക്ക്അപ്പുകൾ കൈകാര്യം ചെയ്യാൻ റൺടൈം ഗണനരീതിയും അതിന്റെ ആശ്രിതത്വ ഗ്രൂപ്പിനുള്ളിൽ മാത്രം പ്രവർത്തിക്കാനും കാരണമാകുന്നു. --no-undefined സൂചിപ്പിക്കുന്നു. പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന എൽഎൽ പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ ഈ ഐച്ഛികം ഉപയോഗപ്പെടുത്തുന്നുള്ളൂ.

- ബസ്റ്റാക്റ്റ്

- ഡി

-non_shared

- സ്റ്റാറ്റ്

പങ്കിട്ട ലൈബ്രറികളുമായി ലിങ്ക് ചെയ്യരുത്. പങ്കിട്ട ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്ന പ്ലാറ്റ്ഫോമുകളിൽ ഇത് അർത്ഥപൂർണ്ണമാണ്. വിവിധ സിസ്റ്റങ്ങളിലുള്ള പൊരുത്തത്തിനാണു് ഈ ഐച്ഛികത്തിന്റെ വ്യത്യസ്ഥമായ വേരിയന്റുകൾ. കമാൻഡ് ലൈനിൽ നിങ്ങൾക്ക് ഈ ഐച്ഛികം പല പ്രാവശ്യം ഉപയോഗിക്കാം: -l ഓപ്ഷൻ ഉപയോഗിച്ച് ഇത് പിന്തുടരുക ലൈബ്രറി അന്വേഷിക്കുന്നു.

-ബിസൈബോളിക്

പങ്കിട്ട ഒരു ലൈബ്രറി സൃഷ്ടിക്കുമ്പോൾ, ആഗോള ലൈബ്രറി റഫറൻസുകളിലേക്ക് പങ്കുവയ്ക്കുന്ന ലൈബ്രറിയിലെ ഏതെങ്കിലും നിർവചനത്തിൽ ഉൾപ്പെടുത്തുക. സാധാരണയായി, പങ്കിട്ട ലൈബ്രറിയിലെ നിർവചനം ഒഴിവാക്കാൻ ഒരു പങ്കാളിത്ത ലൈബ്രറിയിൽ ലിങ്ക് ചെയ്ത ഒരു പ്രോഗ്രാം സാധ്യമാണ്. പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന ELF പ്ളാറ്റ്ഫോമുകളിൽ മാത്രമേ ഈ ഉപാധി ഉപയോഗിക്കാവൂ.

--check- വിഭാഗങ്ങൾ

- ഇല്ല-ചെക്ക്-വിഭാഗങ്ങൾ

ഏതെങ്കിലും ഓവർലാപ്സ് ഉണ്ടോ എന്ന് നോക്കിക്കഴിഞ്ഞാൽ, സെക്ഷൻ വിലാസങ്ങൾ പരിശോധിക്കരുതെന്ന് ലിങ്കർ ആവശ്യപ്പെടുന്നു. സാധാരണയായി ഈ പരിശോധന നടത്തുമെന്നും, ഏതെങ്കിലും ഓവർലാപ്സ് കണ്ടെത്തുകയാണെങ്കിൽ അത് ഉചിതമായ എറർ മെസ്സേജ് ഉണ്ടാകും. ലിങ്കർ അറിയാമെങ്കിലും ഓവർലേകളിലെ വിഭാഗങ്ങൾക്ക് അലവൻസ് ഉണ്ടാക്കുന്നു. കമാൻഡ് ലൈൻ സ്വിച്ച് --check-sections ഉപയോഗിച്ച് സ്വതവേയുള്ള പ്രവർത്തനം പുനഃസ്ഥാപിയ്ക്കുവാൻ സാധിയ്ക്കുന്നു .

--cref

ഒരു ക്രോസ് റഫറൻസ് പട്ടിക ഔട്ട്പുട്ട് ചെയ്യുക. ഒരു ലിങ്കർ മാപ്പ് ഫയൽ ജനറേറ്റുചെയ്യുന്നുണ്ടെങ്കിൽ, ക്രോസ് റഫറൻസ് പട്ടിക മാപ്പ് ഫയലിൽ പ്രിന്റ് ചെയ്തിരിക്കുന്നു. അല്ലെങ്കിൽ, അത് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ പ്രിന്റ് ചെയ്യുന്നു.

പട്ടികയുടെ ശൈലി മനഃപൂർവ്വം ലളിതമാണ്, ആവശ്യമെങ്കിൽ അത് സ്ക്രിപ്റ്റിൽ എളുപ്പത്തിൽ പ്രോസസ് ചെയ്യാവുന്നതാണ്. ചിഹ്നങ്ങൾ അച്ചടിക്കപ്പെട്ടു, പേര് ഉപയോഗിച്ച് അടുക്കുന്നു. ഓരോ ചിഹ്നത്തിനും, ഫയൽ നാമങ്ങളുടെ ഒരു ലിസ്റ്റ് നൽകിയിരിക്കുന്നു. ചിഹ്നം നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ, ആദ്യം ലിസ്റ്റുചെയ്തിരിക്കുന്ന നിർവചനം നിർവചിക്കപ്പെട്ട സ്ഥലമാണ്. ബാക്കിയുള്ള ഫയലുകളിൽ ചിഹ്നങ്ങളെ പരാമർശിക്കുന്നു.

--no- define-common

ഈ ചിഹ്നങ്ങൾ സാധാരണ ചിഹ്നങ്ങൾക്ക് വിലാസങ്ങൾ നൽകുന്നതിനെ തടയുന്നു. "INHIBIT_COMMON_ALLOCATION" എന്ന സ്ക്രിപ്റ്റ് നിർദ്ദേശത്തിന് സമാനമായ ഫലം ഉണ്ട്.

ഔട്ട്പുട്ട് ഫയൽ തരം തിരഞ്ഞെടുക്കുന്നതിൽ നിന്നും പൊതു ചിഹ്നങ്ങളിലേക്ക് വിലാസങ്ങൾ നൽകുന്നതിനുള്ള തീരുമാനം ഡീപ്ലിപ് ചെയ്യാൻ --no- define-common ഓപ്ഷൻ അനുവദിക്കുന്നു; സാധാരണയായുള്ള ചിഹ്നങ്ങളിലേയ്ക്കുള്ള വിലാസങ്ങൾ നൽകിക്കൊണ്ടുള്ള ഒരു മാറ്റമില്ലാത്ത ഔട്ട്പുട്ട് തരം ദൗത്യങ്ങൾ. പങ്കിട്ട ലൈബ്രറിയിൽ നിർദ്ദേശിച്ചിട്ടുള്ള സാധാരണ ചിഹ്നങ്ങൾ പ്രധാന പ്രോഗ്രാമിൽ മാത്രം വിലാസങ്ങൾ അസൈൻ ചെയ്യപ്പെടുന്നതിന് --no- define-common ഉപയോഗിക്കുന്നു. ഇത് പങ്കുവയ്ക്കുന്ന ലൈബ്രറിയിൽ ഉപയോഗിക്കാത്ത ഡ്യൂപ്ലിക്കേറ്റ് സ്പെയ്സ് ഇല്ലാതാക്കുന്നു കൂടാതെ റൺടൈം ചിഹ്ന മിഴിവ് പ്രത്യേക തിരച്ചിൽ വഴികളിലൂടെ നിരവധി ഡൈനാമിക് മൊഡ്യൂളുകൾ ഉള്ളപ്പോൾ തെറ്റായ തനിപ്പകർപ്പ് പരിഹരിക്കുന്നതിന് എന്തെങ്കിലും ആശയക്കുഴപ്പം തടയുന്നു.

--defsym ചിഹ്നം = എക്സ്പ്രഷൻ

ഔട്ട്പുട്ട് ഫയലിൽ ഒരു ഗ്ലോബൽ ചിഹ്നം സൃഷ്ടിക്കുക, എക്സ്പ്രെഷനിൽ നൽകിയിരിക്കുന്ന സമ്പൂർണ്ണ വിലാസം അടങ്ങിയിരിക്കുന്നു. കമാൻഡ് ലൈനിലെ മൾട്ടിപ്പിൾ ചിഹ്നങ്ങളെ നിർവ്വചിക്കാൻ ആവശ്യമുള്ള പല സമയത്തും ഈ ഐച്ഛികം ഉപയോഗിക്കാം. ഈ പശ്ചാത്തലത്തിൽ ഒരു പരിധിക്ക് മാത്രമായ ആർട്ടിമെറ്റിക് പിന്തുണയ്ക്കുന്നു: നിങ്ങൾക്ക് ഒരു ഹെക്സാഡെസിമൽ സ്ഥിരാങ്കോ നിലവിലുള്ള ചിഹ്നത്തിന്റെ പേരോ നൽകാം അല്ലെങ്കിൽ ഹെക്സാഡെസിമൽ സ്ഥിരാങ്കങ്ങൾ അല്ലെങ്കിൽ ചിഹ്നങ്ങൾ ചേർക്കുന്നതിനോ കുറയ്ക്കുന്നതിനോ "+" കൂടാതെ "-" ഉപയോഗിക്കും. നിങ്ങൾക്ക് കൂടുതൽ വിപുലമായ എക്സ്പ്രഷനുകൾ വേണമെങ്കിൽ, ഒരു ലിപിയിൽ നിന്ന് ലിങ്കർ കമാൻഡ് ഭാഷ ഉപയോഗിക്കുന്നത് പരിഗണിക്കുക. കുറിപ്പ്: ചിഹ്നത്തിനും ("` = = "), എക്സ്പ്രഷനിനും തുല്യ പ്രതീകങ്ങളില്ല .

--demangle [= style ]

- ഡിമാങ്കിൾ

പിശക് സന്ദേശങ്ങളിലും മറ്റ് ഔട്ട്പുട്ടുകളിലും ചിഹ്ന പേരുകൾ ഡീമാങ്കലാക്കാൻ ഈ ഓപ്ഷൻ നിയന്ത്രിക്കുന്നു. കണക്ട് ഡീവംഗിനോട് പറയുമ്പോൾ, ചിഹ്നത്തിന്റെ പേരുകൾ വായനാപരമായ പേരുകളിൽ അവതരിപ്പിക്കാൻ ശ്രമിക്കുന്നു: ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റ് ഉപയോഗിക്കുവാണോ അത് അണ്ടർകോർകോഴ്സ് മുന്നോട്ട് വയ്ക്കുന്നത്, കൂടാതെ സി ++ മാംഗഡ്ഡ് ചിഹ്ന പേരുകൾ ഉപയോക്താവിന് വായനാപരമായ പേരുകളായി പരിവർത്തനം ചെയ്യുന്നു. വ്യത്യസ്ത കമ്പൈലറുകൾക്ക് വ്യത്യസ്ത മാങ്ങ ശൈലുകൾ ഉണ്ട്. നിങ്ങളുടെ കമ്പൈലറിന് അനുയോജ്യമായ ഡിമാൻസിംഗ് രീതി തിരഞ്ഞെടുക്കാനായി ഓപ്ഷണൽ ഡെമാംഗ്ലിംഗ് ശൈലി ആർഗ്യുമെന്റ് ഉപയോഗിക്കാം. പരിസ്ഥിതി വേരിയബിൾ COLLECT_NO_DEMANGLE സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ ഡീഫോൾട്ടായി ലിങ്കർ ഡീമാങ്കായി ചെയ്യും. സ്വതവേയുള്ളവ അസാധുവാക്കാൻ ഈ ഐച്ഛികങ്ങൾ ഉപയോഗിയ്ക്കാം.

--dynamic-linker ഫയൽ

ഡൈനാമിക് ലിങ്കറിന്റെ പേരു് സജ്ജമാക്കുക. ചലനാത്മകവുമായി ബന്ധപ്പെട്ട ELF എക്സിക്യൂട്ടബിളുകൾ സൃഷ്ടിക്കുമ്പോൾ ഇത് അർത്ഥവത്തായതാണ്. ഡീഫോൾട്ട് ഡൈനാമിക് ലിങ്ക് സാധാരണയായി ശരിയാണ്; നിങ്ങൾ എന്താണ് ചെയ്യുന്നത് എന്ന് വ്യക്തമല്ലെങ്കിൽ ഇത് ഉപയോഗിക്കരുത്.

--embedded-relocs

ഗ്നു കമ്പൈലർക്കും അസംബ്ലുവിലേക്കും -membedded-pic ഐച്ഛികം തയ്യാറാക്കിയ MIPS ഉൾപ്പെടുത്തിയ PIC കോഡ് ചേർക്കുമ്പോൾ ഈ ഐച്ഛികം അർഥവത്തായിത്തീരുന്നു. ഇത് ഒരു ടേബിൾ സൃഷ്ടിക്കുന്നതിനുള്ള ലിങ്കറിനെയാണ് കാരണമാകുന്നത്, ഇത് സ്റ്റാർട്ടറായ പോയിന്ററുകളിലേക്ക് ആരംഭിച്ച ഡാറ്റ മാറ്റാൻ റൺടൈം സമയത്ത് ഉപയോഗിക്കാനിടയുണ്ട്. കൂടുതൽ വിവരങ്ങൾക്കായി testsuite / ld-empic ലെ കോഡ് കാണുക.

- മരണ-മുന്നറിയിപ്പുകൾ

എല്ലാ മുന്നറിയിപ്പുകളും പിശകുകളായി പരിഗണിക്കുക .

--force-exe- സഫിക്സ്

ഒരു ഔട്ട്പുട്ട് ഫയലിൽ ഒരു .exe സഫിക്സ് ഉണ്ടെന്ന് ഉറപ്പുവരുത്തുക.

വിജയകരമായി പൂർത്തിയാക്കിയ പൂർണ്ണ ലിങ്കുചെയ്ത ഔട്ട്പുട്ട് ഫയലിൽ ".exe" അല്ലെങ്കിൽ " .dll " പ്രത്യയം ഇല്ലെങ്കിൽ, ഈ ഐച്ഛികം ഔട്ട്പുട്ട് ഫയൽ "sameex" പ്രത്യകത്തിന്റെ അതേ നാമത്തിൽ പകർത്താൻ സഹായിക്കുന്നു. ഒരു വിൻഡോസ് വിൻഡോസ് ഹോസ്റ്റിൽ പരിഷ്കരിച്ച യൂണിക്സ് നിർമ്മാതാക്കളെ ഉപയോഗിക്കുമ്പോൾ ഈ ഐച്ഛികം ഉപയോഗപ്രദമാണ്, ചില വിൻഡോസ് പതിപ്പുകളും ".exe" പ്രത്യകത്തിൽ അവസാനിക്കുന്നതുവരെ ഒരു ചിത്രം പ്രവർത്തിപ്പിക്കുകയില്ല.

--no-gc- വിഭാഗങ്ങൾ

--gc- വിഭാഗങ്ങൾ

ഉപയോഗിക്കാത്ത ഇൻപുട്ട് വിഭാഗങ്ങളുടെ ചവറ്റുകുട്ട ശേഖരണം പ്രാപ്തമാക്കുക. ഈ ഓപ്ഷൻ പിന്തുണയ്ക്കാത്ത ടാർഗെറ്റുകളിൽ ഇത് അവഗണിക്കും. ഈ ഓപ്ഷൻ -r -മായി യോജിക്കുന്നില്ല, ഡൈനാമിക് ലിങ്കിങ് ഉപയോഗിക്കേണ്ടതുമില്ല. കമാൻഡ് ലൈനിലെ --no-gc-sections വ്യക്തമാക്കുന്നതിലൂടെയാണ് സ്വതവേയുള്ള സ്വഭാവം (ഈ ചവറ്റുകുട്ട ശേഖരം നടത്താത്തതു്) പുനഃസ്ഥാപിയ്ക്കാവുന്നതാണു്.

--സഹായിക്കൂ

സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്, എക്സിറ്റ് എന്നിവിടങ്ങളിൽ കമാൻഡ് ലൈൻ ഓപ്ഷനുകളുടെ ഒരു സംഗ്രഹം അച്ചടിക്കുക.

--target- സഹായം

നിർദ്ദിഷ്ട ഔട്ട്പുട്ട്, എക്സിറ്റ് എന്നിവിടങ്ങളിലെ എല്ലാ ടാർഗെറ്റ് നിർദ്ദിഷ്ട ഐച്ഛികങ്ങളുടെയും ഒരു സംഗ്രഹം അച്ചടിക്കുക.

-മാപ്പ് mapfile

ഫയൽ മാപ്പിലേക്ക് ലിങ്ക് ലിങ്ക് പ്രിന്റുചെയ്യുക. മുകളിൽ -M ഐച്ഛികം വിവരണം കാണുക.

- ഒട്ടും സൂക്ഷിക്കുന്ന മെമ്മറി

ld മെമ്മറിയിൽ ഇൻപുട്ട് ഫയലുകളുടെ ചിഹ്നങ്ങളുടെ ചിഹ്നം കാഷെ ചെയ്തുകൊണ്ട് മെമ്മറി ഉപയോഗത്തെ വേഗത്തിലാക്കാൻ സാധാരണ അനുരൂപമാക്കുന്നു. ആവശ്യമെങ്കിൽ ചിഹ്ന പട്ടികകൾ വീണ്ടും വായിച്ചുകൊണ്ട്, മെമ്മറിയുടെ ഉപയോഗത്തിനായി ഒപ്റ്റിമൈസുചെയ്യുന്നതിനു് ഈ ഐച്ഛികം ld ഉപയോഗിയ്ക്കുന്നു. വലിയ എക്സിക്യൂട്ടബിളിനെ ബന്ധിപ്പിക്കുമ്പോൾ മെമ്മറി സ്പെയ്സില്ലെങ്കിൽ ld പ്രവർത്തിച്ചു കഴിഞ്ഞാൽ ഇത് ആവശ്യമാണ്.

- ഇല്ല-നിർവ്വചിച്ചിട്ടില്ല

-z defs

സാധാരണയായി ഒരു നോൺ-സിംബോളിക് പങ്കിട്ട ലൈബ്രറി സൃഷ്ടിക്കുമ്പോൾ, നിർവ്വചിക്കാത്ത ചിഹ്നങ്ങൾ അനുവദനീയമാണ്, റൺടൈം ലോഡർ പരിഹരിക്കുന്നതിനായി അവശേഷിക്കുന്നു. അത്തരം നിർവചിക്കപ്പെട്ട ചിഹ്നങ്ങളെ ഈ ഓപ്ഷനുകൾ അനുവദിക്കുന്നില്ല.

--allow-multi-definition

-z muldefs

സാധാരണ ഒരു ചിഹ്നം ഒന്നിലധികം തവണ നിർവ്വചിക്കുമ്പോൾ, ലിങ്കർ ഒരു മാരകമായ പിശക് റിപ്പോർട്ട് ചെയ്യും. ഈ ഓപ്ഷനുകൾ ഒന്നിലധികം നിർവചനങ്ങൾ അനുവദിക്കുകയും ആദ്യ നിർവ്വചനം ഉപയോഗിക്കുകയും ചെയ്യും.

--allow-shlib-undefined

--no-undefined സജ്ജമാക്കിയിരിക്കുമ്പോൾ പോലും പങ്കിട്ട വസ്തുക്കളിൽ വ്യക്തമല്ലാത്ത ചിഹ്നങ്ങളെ അനുവദിക്കുക. സാധാരണ ഫലങ്ങളിൽ നിർവചിക്കപ്പെടാത്ത ചിഹ്നങ്ങൾ ഒരു പിശക് ഉണ്ടാക്കും, പക്ഷേ പങ്കിട്ട വസ്തുക്കളിലെ നിർവചിക്കാത്ത ചിഹ്നങ്ങൾ അവഗണിക്കപ്പെടും. റൺ ഓഫ് ലൈനർ നിർവചിക്കപ്പെട്ടിട്ടില്ലാത്ത ചിഹ്നങ്ങളിൽ ചവച്ചുവെക്കുമെന്ന് അനുമാനമില്ലാതെ no_undefined നിർവഹിക്കുന്നു. എന്നിരുന്നാലും, നിലവിലുള്ള ഒരു ആർഗ്യുമെന്റിനു് അനുയോജ്യമായ ഏതു് പ്രവർത്തനമാണു് തെരഞ്ഞെടുക്കുന്നതു് എന്നറിയുന്നതിനായി, ലോഡ് സമയത്തു് കെർണൽ പാട്ടുകൾ ലഭ്യമാക്കുന്നതിനാൽ, പങ്കിട്ട ലൈബ്രറികളിൽ നിർവചിക്കപ്പെടാത്ത ചിഹ്നങ്ങളാണെങ്കിലും ചുരുങ്ങിയത് ഒരു സിസ്റ്റം (BeOS) ഉണ്ടെങ്കിലും. IE സാധാരണയായി ഒരു ഉചിതമായൊരു മിംസെറ്റ് പ്രവർത്തനം തെരഞ്ഞെടുക്കുന്നു. സൂചിപ്പിച്ചിട്ടില്ലാത്ത ചിഹ്നങ്ങളുള്ള HPPA പങ്കിട്ട ലൈബ്രറികൾക്കും ഇത് സാധാരണമാണ്.

--no-undefined-version

സാധാരണയായി ഒരു ചിഹ്നത്തിൽ ഒരു നിർവചിക്കാത്ത പതിപ്പ് ഉണ്ടെങ്കിൽ, ലിങ്കർ അതിനെ അവഗണിക്കും. നിർദ്ദിഷ്ട പതിപ്പല്ലാത്ത ചിഹ്നങ്ങൾ ഈ ഓപ്ഷൻ അനുവദിക്കുന്നില്ല, പകരം ഗുരുതരമായ പിശക് സംഭവിക്കും.

- മുന്നറിയിപ്പ്-പൊരുത്തക്കേട്

ചില കാരണങ്ങളാൽ പൊരുത്തപ്പെടാത്ത ഇൻപുട്ട് ഫയലുകൾ ഒന്നിച്ചുചേർക്കാൻ ശ്രമിക്കുകയാണെങ്കിൽ സാധാരണയായി ld ഒരു തെറ്റ് നൽകുന്നു, ഒരുപക്ഷേ അവർ വ്യത്യസ്ത പ്രോസസറുകൾക്കോ ​​അല്ലെങ്കിൽ വ്യത്യസ്ത എൻഡിഎൻസിനോ വേണ്ടി കംപൈൽ ചെയ്തതാകാം. സാധ്യമായ ഇത്തരം പിശകുകൾ നിശബ്ദമായി അനുവദിക്കണമെന്ന് ഈ ഓപ്ഷൻ ld പറയുന്നു. ലിങ്കർ പിശകുകൾ അനുചിതമാണെന്ന് ഉറപ്പു വരുത്തുന്ന ചില പ്രത്യേക നടപടികൾ എടുക്കുമ്പോൾ സന്ദർഭങ്ങളിൽ മാത്രമേ ഈ ഐച്ഛികം ഉപയോഗപ്പെടുത്തൂ.

- മുഴുവൻ-ആർക്കൈവ്

പിന്നീട് ആർക്കൈവ് ഫയലുകളിൽ --whole ആർക്കൈവ് ഐച്ഛികത്തിന്റെ പ്രഭാവം ഓഫാക്കുക.

- നോനിബിറ്റ്-എക്സി

എക്സിക്യൂട്ടബിൾ ഔട്ട്പുട്ട് ഫയൽ അത് ഉപയോഗപ്രദമാകുമ്പോഴെല്ലാം നിലനിർത്തുക. സാധാരണയായി, ലിങ്ക് പ്രക്രിയ സമയത്തു് പിശകുകൾ നേരിടുന്നുവെങ്കിൽ, ഒരു ഔട്ട്പുട്ട് ഫയലിന്റെ കണക്ഷൻ ലഭ്യമാക്കില്ല; എന്തെങ്കിലും പിശകുകൾ നേരിടുമ്പോൾ ഒരു ഔട്ട്പുട്ട് ഫയൽ രേഖപ്പെടുത്താതെ അത് പുറത്തുപോകുന്നു.

-nostdlib

കമാൻഡ് ലൈനിൽ സ്പഷ്ടമായി നിർദ്ദേശിച്ചിരിക്കുന്ന ലൈബ്രറി ഡയറക്ടറികൾ മാത്രം തിരയുക. ലിങ്കർ സ്ക്രിപ്റ്റുകളിൽ പറഞ്ഞിരിയ്ക്കുന്ന ലൈബ്രറി ഡയറക്ടറികൾ (കമാൻഡ് ലൈനിൽ പറഞ്ഞിരിക്കുന്ന ലിങ്കർ സ്ക്രിപ്റ്റുകൾ ഉളളവ) അവഗണിക്കപ്പെടുന്നു.

ഔട്ട്പുട്ട് ഫോർമാറ്റ് --oformat

ഒന്നിൽ കൂടുതൽ ഒബ്ജക്റ്റ് ഫയൽ പിന്തുണയ്ക്കുന്നതിന് ld ക്രമീകരിക്കാം. നിങ്ങളുടെ ld ഇതു ക്രമീകരിച്ചിട്ടുണ്ടെങ്കിൽ, ഔട്ട്പുട്ട് ഒബ്ജക്റ്റ് ഫയൽക്കുള്ള ബൈനറി ഫോർമാറ്റ് വ്യക്തമാക്കാൻ --oformat ഐച്ഛികം ഉപയോഗിക്കാം. എൽഡി ഓഡിയോ ഒപ്ഷൻ ഫോർമാറ്റുകൾ പിന്തുണയ്ക്കുന്നതിന് ക്രമീകരിക്കുമ്പോൾ, സാധാരണയായി ഇത് വ്യക്തമാക്കേണ്ടതില്ല, കാരണം ഓരോ മെഷീനും ഏറ്റവും സാധാരണ ഫോർമാറ്റ് ഒരു സാധാരണ ഔട്ട്പുട്ട് ഫോർമാറ്റായി ക്രമീകരിക്കാൻ ക്രമീകരിക്കണം. ഔട്ട്പുട്ട്-ഫോർമാറ്റ് ഒരു ടെക്സ്റ്റ് സ്ട്രിംഗാണ്, BFD ലൈബ്രറികൾ പിന്തുണയ്ക്കുന്ന ഒരു പ്രത്യേക ഫോർമാറ്റിന്റെ പേരാണ്. ( Objdump -i ഉള്ള ലഭ്യമായ ബൈനറി ഫോർമാറ്റുകൾ നിങ്ങൾക്ക് പട്ടികപ്പെടുത്താം.) "OUTPUT_FORMAT" എന്ന സ്ക്രിപ്റ്റ് നിർദ്ദേശവും ഔട്ട്പുട്ട് ഫോർമാറ്റിനെ വ്യക്തമാക്കാൻ കഴിയും, എന്നാൽ ഈ ഓപ്ഷൻ അത് അസാധുവാക്കുന്നു.

--qmagic

ലിനക്സിനു് പൊരുത്തപ്പെടുത്തുന്നതിനു് ഈ ഐച്ഛികം അവഗണിയ്ക്കുന്നു.

-ഉം

എസ്വിആർ 4 കോംപാറ്റിബിളിറ്റി ഈ ഓപ്ഷൻ അവഗണിക്കും.

--ശാന്തമാകൂ

യന്ത്രം അനുസരിച്ചുള്ള ഇഫക്ടുകൾ ഉള്ള ഒരു ഉപാധി. ഈ ഓപ്ഷൻ ഏതാനും ടാർഗെറ്റുകൾക്ക് മാത്രമേ പിന്തുണയ്ക്കുകയുള്ളൂ.

ചില പ്ലാറ്റ്ഫോമുകളിൽ, റിലീസ് ഒബ്ജക്റ്റ് ഫയലിലെ വിലാസം പുതിയ രീതികളിൽ സമന്വയിപ്പിക്കൽ, പുതിയ നിർദ്ദേശങ്ങൾ സമന്വയിപ്പിക്കൽ എന്നിവ പോലുള്ള പ്രോഗ്രാമിലെ വിലാസം പരിഹരിക്കുന്നതിനായി സാധ്യമാകുന്ന, ഗ്ലോബൽ ഒപ്റ്റിമൈസേഷനുകൾ --relax ഐച്ഛികം സാധ്യമാക്കുന്നു.

ചില പ്ലാറ്റ്ഫോമുകളിൽ ഈ ലിങ്ക് സമയം ആഗോള ഒപ്റ്റിമൈസേഷനുകൾ ഫലമായി നിർവ്വഹിക്കാൻ കഴിയുന്ന അസാധാരണമായ പ്രതീകാത്മക ഡീബഗ്ഗിംഗ് ഉണ്ടാക്കുന്നു. Matsushita MN10200and MN10300 കുടുംബത്തിലെ പ്രോസസ്സർമാർക്ക് ഇത് അറിയാം.

ഇത് പിന്തുണയ്ക്കാത്ത പ്ലാറ്റ്ഫോമുകളിൽ, --relax അംഗീകരിച്ചു, എന്നാൽ അവഗണിക്കപ്പെട്ടു.

- അടയ്ക്കുക-ചിഹ്നങ്ങൾ-ഫയൽ ഫയൽനാമം

ഫയൽ ഫയൽ നാമത്തിൽ ലിസ്റ്റുചെയ്തിരിക്കുന്ന ചിഹ്നങ്ങൾ മാത്രം നിലനിർത്തുക, മറ്റുള്ളവയെല്ലാം അവഗണിക്കുക. ഫയലിന്റെ പേര് കേവലം ഒരു പരന്ന ഫയലാണിത്, ഓരോ വരിയിലും ഒരു ചിഹ്ന നാമമുണ്ട്. റിയോർ ടൈം മെമ്മറി പരിരക്ഷിക്കുന്നതിനായി ഗ്രിഗോ ചിഹ്നമായ ഒരു വലിയ ഗ്ലോബൽ ചിഹ്ന പട്ടിക നിരന്തരമായി അടിഞ്ഞു കൂടുന്ന സാഹചര്യത്തിൽ (VxWorks പോലുള്ള) ഇത് വളരെ പ്രയോജനകരമാണ്.

--retain-symbols-file നിർവചിക്കപ്പെടാത്ത ചിഹ്നങ്ങൾ അല്ലെങ്കിൽ ചിഹ്നങ്ങളിൽ ആവശ്യമുള്ള ചിഹ്നങ്ങൾ ഉപേക്ഷിക്കുന്നില്ല.

നിങ്ങൾ കമാൻഡ് ലൈനിൽ ഒരിക്കൽ --retain-symbols-file ഒരിക്കൽ മാത്രം നൽകാം. ഇത് അസാധുവാക്കുന്നു- s ഉം -S ഉം .

-ആർതാത് ദിർ

റൺടൈം ലൈബ്രറി സെർച്ച് പാഡിൽ ഒരു ഡയറക്ടറി ചേർക്കുക. പങ്കിട്ട വസ്തുക്കളുമായി ELFexecutable ലിങ്ക് ചെയ്യുമ്പോൾ ഇതുപയോഗിക്കുന്നു. All -rpath ആർഗ്യുമെന്റുകൾ കൂട്ടിച്ചേർക്കുകയും റൺടൺ ലൈനറിലേക്ക് കടന്നുപോകുകയും ചെയ്യുന്നു. ഇത് പ്രവർത്തിപ്പിക്കാനുള്ള വസ്തുക്കൾ റൺടൈമിൽ കണ്ടെത്താൻ ഉപയോഗിക്കുന്നു. ലിങ്ക്യിൽ വ്യക്തമായി ഉൾപ്പെടുത്തിയിട്ടുള്ള പങ്കിട്ട വസ്തുക്കൾ ആവശ്യമുള്ള പങ്കിട്ട വസ്തുക്കളെ കണ്ടുപിടിക്കുമ്പോൾ -ppath ഐച്ഛികം ഉപയോഗിയ്ക്കുന്നു; -rpath-link ഉപാധിയുടെ വിവരണം കാണുക. ഒരു ELF എക്സിക്യൂട്ടബിൾ ചെയ്യുമ്പോൾ -rpath ഉപയോഗിയ്ക്കുന്നില്ലെങ്കിൽ, നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ പരിസ്ഥിതി വേരിയബിളിന്റെ "LD_RUN_PATH" ഉള്ളടക്കങ്ങൾ ഉപയോഗിക്കും.

SunOS- ൽ -rpath ഐച്ഛികവും ഉപയോഗിയ്ക്കാം. സ്ഥിരമായി, SunOS- ൽ, ലിങ്കർ ഒരു റൺടൈം സെർച്ച് പാച്ചിൽ ലഭ്യമാക്കും. ഒരു -rpath ഉപാധി ഉപയോഗിയ്ക്കുന്നെങ്കിൽ -lpath ഐച്ഛികങ്ങൾ ഉപയോഗിച്ചു് റൺടൈം തെരയുന്ന പാഥ് ഉണ്ടാക്കുന്നു, -L ഐച്ഛികങ്ങൾ അവഗണിക്കുന്നു. Gcc ഉപയോഗിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാകും, ഇതു് പല -എൽ ഓപ്ഷനുകൾ ചേർക്കുന്നു. എൻഎഫ്എസ് ഫയൽസിസ്റ്റങ്ങൾ മൌണ്ട് ചെയ്യപ്പെട്ടേക്കാം.

മറ്റ് എൽഎൽഎഫ് ലിങ്കേഴ്സിനു് പൊരുത്തപ്പെടുന്നതിനു്, -R ഐച്ഛികം ഒരു ഫയലിന്റെ പേരു് പകരം ഡയറക്ടറി നാമം നൽകിയിട്ടുണ്ടെങ്കിൽ, -rpath ഐച്ഛികമായി ഇത് കണക്കാക്കുന്നു.

-ആർപാത്ത്-ലിങ്ക് DIR

ELF അല്ലെങ്കിൽ SunOS ഉപയോഗിക്കുമ്പോൾ, ഒരു പങ്കിട്ട ലൈബ്രറി മറ്റൊരുപക്ഷത്തിന് വേണ്ടി വന്നേക്കാം. ഒരു "ld-shared" ലിങ്ക് ഇൻപുട്ട് ഫയലുകളിലൊന്നിന് പങ്കിട്ട ലൈബ്രറിയും ഉൾപ്പെടുമ്പോൾ സംഭവിക്കുന്നു.

പങ്കിടാത്തതും അല്ലാത്തതും ആയ ഒരു ലിങ്ക് ചെയ്യുന്ന സമയത്ത് അത്തരം ഡിപൻഡൻസിയെ നേരിടുമ്പോൾ, അത് സ്വപ്രേരിതമായി ഉൾപ്പെടുത്തിയില്ലെങ്കിൽ, ആവശ്യമായ പങ്കിട്ട ലൈബ്രറി കണ്ടെത്താൻ അത് സ്വയം ശ്രമിക്കും. അത്തരമൊരു സാഹചര്യത്തിൽ, -rpath-link ഐച്ഛികം തിരയുന്നതിനുള്ള ആദ്യത്തെ ഡയറക്ടറികളുടെ ഡയറക്ടറി നൽകുന്നു. കോളൻ ഉപയോഗിച്ച് വേർതിരിച്ചിരിക്കുന്ന പേരുകളുടെ ലിസ്റ്റ് അല്ലെങ്കിൽ അനവധി തവണ കാണുന്നതുവഴി -rpath-link ഐച്ഛികം ഡയറക്ടറി നാമങ്ങളുടെ ഒരു ക്രമം വ്യക്തമാക്കാം.

പങ്കിട്ട ലൈബ്രറിയിൽ ഹാർഡ് കംപൈൽ ചെയ്ത തിരയൽ പാഡിനെ അസാധുവാക്കുന്നതിനാൽ ഈ ഓപ്ഷൻ മുൻകരുതലായി ഉപയോഗിക്കണം. ഇത്തരത്തിലുള്ള സാഹചര്യത്തിൽ റൺടൈൻഡർ ലിങ്ക് ചെയ്യുന്നതിനേക്കാൾ വ്യത്യസ്തമായ ഒരു തിരച്ചിൽ പാത്ത് ഉപയോഗിക്കാനാവില്ല.

ആവശ്യമുള്ള പങ്കിട്ട ലൈബ്രറികൾ കണ്ടെത്താൻ താഴെ പറയുന്ന തിരയൽ പാഥുകൾ ഉപയോഗിക്കുന്നു.

1.

-rpath-link ഉപാധികൾ വ്യക്തമാക്കിയ ഏതെങ്കിലും ഡയറക്ടറികൾ.

2.

-rpath ഉപാധികൾ വ്യക്തമാക്കിയ ഏതെങ്കിലും ഡയറക്ടറികൾ. -rpath , -rpath-link എന്നിവയ്ക്കുളള വ്യത്യാസം ആണ് -rpath ഓപ്ഷനുകൾ സൂചിപ്പിച്ചിരിക്കുന്നത് കൊണ്ടുള്ള ഡയറക്ടറികൾ റൺടൈമിൽ പ്രവർത്തിപ്പിക്കാവുന്നതും ഉപയോഗത്തിലുമാണ്. അതേസമയം, -rpath-link ഓപ്ഷൻ ലിങ്ക് സമയത്ത് മാത്രമേ ഫലപ്രദമാകൂ. നേറ്റീവ് ലിങ്കറിനായി മാത്രം.

3.

ELF സിസ്റ്റത്തിൽ, -rpath , "rpath-link" ഓപ്ഷനുകൾ ഉപയോഗിച്ചില്ലെങ്കിൽ, പരിസ്ഥിതി വേരിയബിളിന്റെ "LD_RUN_PATH" ഉള്ളടക്കം തിരയാൻ. നേറ്റീവ് ലിങ്കറിനായി മാത്രം.

4.

SunOS- ൽ , -rpath ഉപാധി ഉപയോഗിച്ചില്ലെങ്കിൽ, -L ഉപാധികൾ ഉപയോഗിച്ച് വ്യക്തമാക്കിയ ഏതെങ്കിലും ഡയറക്ടറികൾ അന്വേഷിക്കുക.

5.

ഒരു പ്രാദേശിക ലിങ്കറിനായി, പരിസ്ഥിതി വേരിയബിളിന്റെ "LD_LIBRARY_PATH" ഉള്ളടക്കം.

6.

ഒരു പ്രാദേശിക ഇഎൽഎഫ് ലിങ്കറിനായി, ഒരു ലൈബ്രറിയുടെ "DT_RUNPATH" അല്ലെങ്കിൽ "DT_RPATH" ലെ കോഡുകൾ അതിനെ ആവശ്യമുള്ള ഷോർട്ട് ലൈബ്രറികൾക്കായി തിരഞ്ഞു. "DT_RUNPATH" എൻട്രികൾ നിലവിലുണ്ടെങ്കിൽ "DT_RPATH" എൻട്രികൾ അവഗണിക്കപ്പെടും.

7.

സ്വതവേയുള്ള ഡയറക്ടറികൾ, സാധാരണ / lib , / usr / lib എന്നിവ .

8.

ഒരു ELF സിസ്റ്റത്തിലുള്ള ഒരു പ്രാദേശിക ലിങ്കറിനായി, /etc/ld.so.conf എന്ന ഫയൽ നിലവിലുണ്ടെങ്കിൽ, ആ ഫയലിൽ ലഭ്യമാക്കിയ ഡയറക്ടറിയുടെ പട്ടിക.

ആവശ്യമായ പങ്കിട്ട ലൈബ്രറി കണ്ടെത്താനായില്ലെങ്കിൽ, ലിങ്ക് ഒരു മുന്നറിയിപ്പ് നൽകുകയും ലിങ്ക് തുടരുകയും ചെയ്യും.

- പങ്കിട്ടു

-

ഒരു പങ്കുവെച്ച ലൈബ്രറി സൃഷ്ടിക്കുക. ELF, XCOFF, SunOS പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ നിലവിൽ ഇത് പിന്തുണയ്ക്കുന്നുള്ളൂ. -o ഓപ്ഷൻ ഉപയോഗിച്ചിട്ടില്ലെങ്കിൽ ലിങ്ക് വഴി നിർവചിക്കപ്പെടാത്ത ചിഹ്നങ്ങളാണെങ്കിൽ SunOS- ൽ, ലിങ്കർ യാന്ത്രികമായി ഒരു പങ്കുവച്ച ലൈബ്രറി സൃഷ്ടിക്കും.

--sort-common

സാധാരണ ചിഹ്നങ്ങൾ പരസ്പരം ഉചിതമായ ഔട്ട്പുട്ട് വിഭാഗത്തിൽ ചേർക്കുമ്പോൾ അവ വലുതാക്കാൻ ഈ ഓപ്ഷൻ ld പറയുന്നു. ആദ്യം ഒരു ബെയ്റ്റ് ചിഹ്നങ്ങളെല്ലാം, പിന്നെ രണ്ട് ബൈറ്റ്, പിന്നെ നാലു ബൈറ്റ്, പിന്നെ എല്ലാം എല്ലാം. അലൈന്മെന്റ് പരിമിതികളുള്ള ചിഹ്നങ്ങള്ക്കിടയിലുള്ള വിടവുകള് തടയുന്നതിനാണിത്.

--split-by-file [ size ]

--split-by-reloc എന്നതിന് സമാനമാണ്, എന്നാൽ വലിപ്പം ചുരുങ്ങുമ്പോൾ ഓരോ ഇൻപുട്ട് ഫയലിനും ഒരു പുതിയ ഔട്ട്പുട്ട് വിഭാഗം സൃഷ്ടിക്കുന്നു. വലിപ്പം നൽകുമ്പോൾ 1 എന്നതിന്റെ വലിപ്പം നൽകണം.

--split-by-reloc [ എണ്ണം ]

ഔട്ട്പുട്ട് ഫയലിൽ അധിക വിഭാഗങ്ങൾ സൃഷ്ടിക്കാൻ ശ്രമിക്കുന്നു, അങ്ങനെ ഫയലിൽ ഒരൊറ്റ ഔട്ട്പുട്ട് സെക്ഷനും എണ്ണൽ കണക്കിനെക്കാൾ കൂടുതൽ അടങ്ങിയിരിക്കുന്നു. COFF ഓബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റിനൊപ്പം ചില യഥാർത്ഥ സമയ കെർണലുകളിലേക്ക് ഡൌൺലോഡ് ചെയ്യുന്നതിനായി വലിയ വലിപ്പമുള്ള ഫയലുകൾ സൃഷ്ടിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്; ഒരൊറ്റ ഭാഗത്ത് COFFCannot 65535 ൽ കൂടുതൽ സ്ഥലത്തെ പ്രതിനിധീകരിക്കുന്നു. ഒബ്ജക്റ്റിക് വിഭാഗങ്ങളെ പിന്തുണയ്ക്കാത്ത ഒബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകളിൽ ഇത് പ്രവർത്തിക്കുമെന്നത് ശ്രദ്ധിക്കുക. പുനർവിതരണത്തിനായുള്ള വ്യക്തിഗത ഇൻപുട്ട് വിഭാഗങ്ങൾ കണ്ണാടി വിഭജിക്കുകയില്ല, അതിനാൽ ഒരു ഇൻപുട്ട് വിഭാഗത്തിൽ എണ്ണത്തിൽ കുറവുണ്ടെങ്കിൽ, ഒരു ഔട്ട്പുട്ട് വിഭാഗത്തിൽ പല പുനരധിവാസങ്ങളും അടങ്ങിയിരിക്കും. 32768 മൂല്യമായി സ്ഥിരമായി കണക്കാക്കുക .

- സ്റ്റാറ്റ്സ്

എക്സിക്യൂഷൻ ടൈം, മെമ്മറി ഉപയോഗം പോലുള്ള ലിങ്കറിന്റെ പ്രവർത്തനം സംബന്ധിച്ച സ്ഥിതിവിവരക്കണക്കുകൾ കണക്കുകൂട്ടുകയും പ്രദർശിപ്പിക്കുകയും ചെയ്യുക.

- പരമ്പരാഗത ഫോർമാറ്റ്

ചില ടാർഗെറ്റുകൾക്ക്, നിലവിലുള്ള നിലവിലുള്ള ലിങ്കറിന്റെ ഔട്ട്പുട്ടിൽ നിന്ന് ld ന്റെ ഉത്പാദനം വ്യത്യസ്തമായിട്ടുണ്ട്. പകരം പരമ്പരാഗത ഫോർമാറ്റ് ഉപയോഗിക്കാൻ ഈ സ്വിച്ച് അഭ്യർത്ഥനകൾ ld .

ഉദാഹരണത്തിന്, SunOS- ൽ, സ്ട്രിങ് പട്ടികയിലെ ഡ്യൂപ്ലിക്കേറ്റ് എൻട്രികൾ ld ചേർക്കുന്നു. ഇത് ഒരു ഔട്ട്പുട്ട് ഫയലിന്റെ വ്യാപ്തി 30% ൽ കൂടുതൽ ഡീബഗ്ഗിംഗ് വിവരങ്ങളും ഉപയോഗിച്ച് കുറയ്ക്കാം. നിർഭാഗ്യവശാൽ, SunOS "dbx" പ്രോഗ്രാമിനു് തത്ഫലമായുണ്ടാകുന്ന പ്രോഗ്രാമുകൾ വായിക്കുവാൻ സാധ്യമല്ല ("gdb" ന് കുഴപ്പമില്ല). തനിപ്പകർപ്പ് എൻട്രികൾ സംയോജിപ്പിക്കുന്നതിന് --traditional- ഫോർമാറ്റ് സ്വിച്ച് ld എന്ന് പറയുന്നു.

--section-start sectionname = org

ഔട്ട്പുട്ട് ഫയലിൽ ഒരു വിഭാഗത്തെ വേർതിരിച്ച് നൽകണം. കമാൻഡ് ലൈനിലെ ഒന്നിലധികം ഭാഗങ്ങൾ കണ്ടുപിടിക്കുന്നതിന് ആവശ്യമുള്ളത്ര ഈ ഐച്ഛികം ഉപയോഗിക്കാം. org ഒരു ഒറ്റ ഹെക്സാഡെസിമൽ പൂർണ്ണസംഖ്യ ആയിരിക്കണം; മറ്റ് ലിസറുകൾക്കൊപ്പമുള്ള അനുയോജ്യതയ്ക്കായി, പ്രധാനമായും ഹെക്സാഡെസിമൽ മൂല്യങ്ങളുമായി ബന്ധപ്പെട്ടിരിക്കുന്ന പ്രധാന 0x ഒഴിവാക്കാവുന്നതാണ്. കുറിപ്പ്: വിഭാഗത്തിന്റെ പേരുമില്ലാതെ വെളുത്ത സ്പേസ് ഉണ്ടാകരുത് , തുല്യ ചിഹ്നം (`` = = "), org .

-ടെബ്സിസ് org

-ടാറ്റാ org

-Ttext org

ഔട്ട്പുട്ട് ഫയലിന്റെ തുടക്കത്തിലുള്ള വിലാസമായി org- "bss", "data", അല്ലെങ്കിൽ "text" സെഗ്മെന്റിനായി ആരംഭിക്കുക. org ഒരു ഒറ്റ ഹെക്സാഡെസിമൽ പൂർണ്ണസംഖ്യ ആയിരിക്കണം; മറ്റ് ലിസറുകൾക്കൊപ്പമുള്ള അനുയോജ്യതയ്ക്കായി, പ്രധാനമായും ഹെക്സാഡെസിമൽ മൂല്യങ്ങളുമായി ബന്ധപ്പെട്ടിരിക്കുന്ന പ്രധാന 0x ഒഴിവാക്കാവുന്നതാണ്.

--dll-verbose

--verbose

Ld നായുള്ള പതിപ്പിന്റെ നമ്പർ പ്രദർശിപ്പിച്ച് ലിങ്കർ എമുലേഷൻ പിന്തുണയ്ക്കുന്നു. ഏത് ഇൻപുട്ട് ഫയലുകളാണ് തുറക്കാൻ കഴിയുക തുറക്കാൻ കഴിയുക എന്നത് പ്രദർശിപ്പിക്കുക. ലിങ്കർ ഉപയോഗിയ്ക്കുന്ന ലിങ്കർ സ്ക്രിപ്റ്റ് പ്രദർശിപ്പിക്കുക.

--version-script = version- scriptfile

ഒരു പതിപ്പ് സ്ക്രിപ്റ്റിന്റെ പേര് ലിങ്കറിനൊപ്പം വ്യക്തമാക്കുക. ലൈബ്രറി സൃഷ്ടിക്കുന്നതിനായുള്ള പതിപ്പ് ഹെർകാർകിയെ കുറിച്ചുള്ള അധിക വിവരങ്ങൾ വ്യക്തമാക്കുന്നതിന് പങ്കിട്ട ലൈബ്രറികൾ സൃഷ്ടിക്കുമ്പോൾ ഇത് സാധാരണയായി ഉപയോഗിക്കുന്നു. പങ്കിട്ട ലൈബ്രറികളെ പിന്തുണയ്ക്കുന്ന എൽഎൽ പ്ലാറ്റ്ഫോമുകളിൽ മാത്രമേ ഈ ഐച്ഛികം ഉപയോഗപ്പെടുത്തുന്നുള്ളൂ.

--warn-common

ഒരു സാധാരണ ചിഹ്നം മറ്റൊരു സാധാരണ ചിഹ്നമോ ചിഹ്നമോ ആയ നിർവചനത്തോടുകൂടി കൂട്ടിച്ചേർക്കാൻ ശ്രദ്ധിക്കുക. യുണിക്സ് ലിങ്കുകൾ ഈ കുറച്ചു കാലമില്ലായ്മയെ അനുവദിക്കുന്നു, പക്ഷെ മറ്റു ചില ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങളിലുള്ള ലിങ്കുകൾ നൽകുന്നില്ല. ഗ്ലോബൽ ചിഹ്നങ്ങൾ സംയോജിപ്പിക്കുന്നതിൽ നിന്നുള്ള പ്രശ്നങ്ങൾ കണ്ടുപിടിക്കാൻ ഈ ഓപ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു. നിർഭാഗ്യവശാൽ, ചില സി ലൈബ്രറികൾ ഈ രീതി ഉപയോഗിക്കുന്നു, അതിനാൽ ലൈബ്രറികളിലും നിങ്ങളുടെ പ്രോഗ്രാമുകളിലും ചിഹ്നങ്ങളെ കുറിച്ചുള്ള ചില മുന്നറിയിപ്പുകൾ ലഭിക്കുന്നു.

സി തരംഗങ്ങൾ ഇവിടെ ചിത്രീകരിക്കപ്പെട്ട മൂന്നു തരം ആഗോള ചിഹ്നങ്ങൾ ഉണ്ട്:

int i = 1;

ഔട്ട്പുട്ട് ഫയലിന്റെ പ്രാരംഭ ഡാറ്റ വിഭാഗത്തിൽ വരുന്ന ഒരു നിർവചനം.

extern int i;

സ്ഥലം അനുവദിക്കാത്ത ഒരു നിർവചിക്കാത്ത റെഫറൻസ്. എവിടെയോ വേരിയബിളിനായി ഒരു നിർവചനം അല്ലെങ്കിൽ ഒരു പൊതു ചിഹ്നം ആയിരിക്കണം.

int i;

ഒരു സാധാരണ ചിഹ്നം. ഒരു വേരിയബിളിനു മാത്രമുള്ള (ഒന്നോ അതിലധികമോ) സാധാരണ ചിഹ്നങ്ങൾ മാത്രം ഉള്ളതുകൊണ്ട്, ഔട്ട്പുട്ട് ഫയലിലെ uninitialized ഡാറ്റാ ഏരിയയിൽ ഇത് നീങ്ങുന്നു. ഒരേ ചിഹ്നത്തിനായുള്ള ഒന്നിലധികം ചിഹ്നങ്ങളുള്ള ലിങ്കർ ഒരു ചിഹ്നമായി ലയിപ്പിക്കുന്നു. അവർ വ്യത്യസ്ത വലിപ്പത്തിലുള്ളവയെങ്കിൽ, അത് ഏറ്റവും വലുതായി എടുക്കുന്നു. ഒരേ വേരിയബിളിന്റെ നിർവ്വചനം ഉണ്ടെങ്കിൽ, ഒരു സാധാരണ സിംബൽ ഒരു ഡിക്ലററായി മാറുന്നു.

- വൺ-സാധാരണ ഓപ്ഷൻ അഞ്ച് തരത്തിലുള്ള മുന്നറിയിപ്പുകൾ നൽകാം. ഓരോ മുന്നറിയിപ്പിനും ഒരു ജോഡി വരികൾ ഉണ്ട്: ആദ്യം നേരിട്ട ചിഹ്നം ആദ്യമായി വിവരിയ്ക്കുന്നു, രണ്ടാമത്തെ ചിഹ്നത്തെ അതേ പേരിൽ നേരിട്ട മുൻചിഹ്നവും രണ്ടാമത്തേത് വിശദീകരിക്കുന്നു. രണ്ട് ചിഹ്നങ്ങളിൽ ഒന്നോ രണ്ടോ ഒരു പൊതുവായ ചിഹ്നം ആയിരിക്കും.

1.

ചിഹ്നമായി ഒരു പൊതു ചിഹ്നം തിരിക്കുക, കാരണം ഇതിനകം തന്നെ ചിഹ്നത്തിന് ഒരു നിർവചനം ഉണ്ട്.

(<വിഭാഗം>): മുന്നറിയിപ്പ്: (
) എന്ന നിർവചനപ്രകാരം `" പൊതുവേ അതിലംഘിച്ചിരിക്കുന്നു: മുന്നറിയിപ്പ്: ഇവിടെ നിർവചിച്ചിരിക്കുന്നത്

2.

ഒരു സാധാരണ ചിഹ്നം ഒരു റഫറൻസിനായി തിരിഞ്ഞ് ചിഹ്നത്തിനുണ്ടായ ഒരു നിർവചനം കണ്ടുമുട്ടി. ചിഹ്നങ്ങൾ വ്യത്യസ്തമായ ക്രമത്തിൽ കണ്ടുമുട്ടില്ലാതെ, മുൻപത്തെ ഉദാഹരണത്തിലും ഇത് തന്നെയാണ്.

(
): മുന്നറിയിപ്പ്: സാധാരണ (<വിഭാഗം>) മാറ്റിസ്ഥാപിക്കുന്നതിനുള്ള ` '' എന്നതിന്റെ നിർവചനം: മുന്നറിയിപ്പ്: പൊതുവായത് ഇവിടെയാണ്

3.

മുൻകാല വലുപ്പമുള്ള സാധാരണ ചിഹ്നമുള്ള ഒരു സാധാരണ ചിഹ്നം സംയോജിപ്പിക്കുന്നു.

(
): മുന്നറിയിപ്പ്: ` '' എന്നതിന്റെ ഒരേയൊരു വകഭേദം (
): മുന്നറിയിപ്പ്:

4.

മുന്പുണ്ടായിരുന്ന വലിയ പൊതു ചിഹ്നമുള്ള ഒരു സാധാരണ ചിഹ്നം ലയിപ്പിക്കുന്നു.

(
): മുന്നറിയിപ്പ്: സാധാരണ (<വിഭാഗം>) ഉപയോഗിച്ച് ` '' പൊതുവായുള്ളതിനെ അസാധുവാക്കുന്നു: മുന്നറിയിപ്പ്: വലിയ സാധാരണ ഇവിടെ

5.

ഒരു ചെറിയ ചെറിയ ചിഹ്നമുള്ള ഒരു സാധാരണ ചിഹ്നം ലയിപ്പിക്കുന്നു. ചിഹ്നങ്ങൾ വ്യത്യസ്തമായ ക്രമത്തിൽ കണ്ടുമുട്ടില്ലാതെ, മുൻപത്തെ ഉദാഹരണത്തിലും ഇത് തന്നെയാണ്.

(
): മുന്നറിയിപ്പ്: ചെറിയ (<വിഭാഗം>) ഒളിഞ്ഞടിക്കുക: മുന്നറിയിപ്പ്: ചെറിയ സാധാരണ ഇവിടെയുണ്ട്

- വൺ നിർമ്മാതാക്കൾ

ഏതെങ്കിലും ആഗോള നിർമ്മാതാക്കളെ ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ മുന്നറിയിപ്പ് നൽകുക. കുറച്ച് ഓബ്ജക്റ്റ് ഫയൽ ഫോർമാറ്റുകളിൽ ഇത് ഉപയോഗപ്രദമാണ്. COFF അല്ലെങ്കിൽ ELF പോലെയുള്ള ഫോർമാറ്റുകൾക്കായി, ലിങ്കർമാർക്ക് ഗ്ലോബൽ നിർമാതാക്കളുടെ ഉപയോഗം കണ്ടുപിടിക്കാൻ കഴിയില്ല.

--warn-multi-gp

ഔട്ട്പുട്ട് ഫയലിൽ ഒന്നിലധികം ആഗോള പോയിന്റർ മൂല്യങ്ങൾ ആവശ്യമാണെങ്കിൽ മാത്രം മുന്നറിയിപ്പ് നൽകുക. ആൽഫാ പോലുള്ള ചില പ്രോസസ്സറുകൾക്ക് ഇത് അർഥവത്തായതാണ്. പ്രത്യേകിച്ചും, ചില പ്രൊസസ്സറുകൾ വലിയൊരു വിലയുള്ള സ്ഥിരാങ്കുകൾ പ്രത്യേക വിഭാഗത്തിൽ ഇട്ടു. ഈ വിഭാഗത്തിന്റെ നടുവിലേക്ക് ഒരു പ്രത്യേക രജിസ്റ്റർ (ആഗോള പോയിന്റർ) പോയിന്റുകൾ, അങ്ങനെ ഒരു അടിസ്ഥാന രജിസ്റ്റർ ആപേക്ഷികമായ അഭിരുചി മോഡ് വഴി കോൺസ്റ്റന്റുകൾ കാര്യക്ഷമമായി ലോഡ് ചെയ്യാൻ കഴിയും. ബേസ് റജിസ്റ്റർ റിലേറ്റീവ് മോഡിൽ ഓഫ്സെറ്റ് നിശ്ചിതവും താരതമ്യേന ചെറുതുമാണ് (ഉദാ: 16 ബിറ്റുകൾ), ഇത് സ്ഥിരമായ പൂളിന്റെ പരമാവധി വലുപ്പം പരിമിതപ്പെടുത്തുന്നു. അങ്ങനെ, വലിയ പ്രോഗ്രാമുകളിൽ, സാധ്യമാകുന്ന എല്ലാ കൺഡൻററുകളും പരിഹരിക്കുവാൻ പല ഗ്ലോബൽ പോയിന്റർ മൂല്യങ്ങളും ഉപയോഗിക്കേണ്ടത് അത്യാവശ്യമാണ്. ഈ കേസ് സംഭവിക്കുമ്പോഴെല്ലാം ഈ മുന്നറിയിപ്പ് പുറപ്പെടുവിക്കുവാൻ കാരണമാകുന്നു.

- വൺ - ഒരിക്കൽ

ഓരോ നിർവചിക്കാത്ത ചിഹ്നത്തിനും ഒരു തവണ മാത്രം നൽകി അതിനെ സൂചിപ്പിക്കുന്ന ഒന്നിൽ മാത്രമേ മുന്നറിയിപ്പ് നൽകുകയുള്ളൂ.

- warn-section-align

വിന്യാസത്തിന്റെ ഫലമായി ഒരു ഔട്ട്പുട്ട് സെക്ഷന്റെ വിലാസം മാറിയിട്ടുണ്ടോ എന്ന് മുന്നറിയിക്കുക. സാധാരണ, ഒരു ഇൻപുട്ട് വിഭാഗത്തിന് വിന്യാസം സജ്ജമാക്കും. വ്യക്തമായി വ്യക്തമാക്കാത്ത പക്ഷം മാത്രമേ വിലാസം മാറുകയുള്ളൂ; അതായത്, "SECTIONS" ആജ്ഞ ഭാഗം വിഭാഗത്തിന്റെ ഒരു ആരംഭ വിലാസം നൽകുന്നില്ല.

- വോളറ്റ് ആർക്കൈവ്

--whole-archiv ഐച്ഛികത്തിനു് ശേഷം കമാൻഡ് ലൈനിൽ പറഞ്ഞിരിക്കുന്ന ഓരോ ആർക്കൈവിനും, ആവശ്യമുള്ള വസ്തുക്കളുടെ ഫയലുകൾ ആർക്കൈവ് തെരയുന്നതിനു് പകരം, ആർക്കൈവിലുള്ള എല്ലാ ഒബ്ജക്റ്റും ചേർക്കുക. പങ്കിടുന്ന ലൈബ്രറിയിൽ ഒബ്ജക്റ്റ് ഫയൽ പങ്കുവെക്കുന്ന ഒരു ലൈബ്രറിയിലേക്ക് ഇത് സാധാരണയായി ഉപയോഗിക്കും. ഈ ഐച്ഛികം ഒന്നിൽ കൂടുതൽ ഉപയോഗിച്ചിരിക്കാം.

Gcc ൽ നിന്നും ഈ ഓപ്ഷൻ ഉപയോഗിക്കുമ്പോൾ രണ്ട് കുറിപ്പുകൾ: ഒന്നാമത്, gcc ഈ ഓപ്ഷനെക്കുറിച്ച് അറിയില്ല, അതിനാൽ നിങ്ങൾ -Wl, -hole- ആർക്കൈവ് ഉപയോഗിക്കണം . രണ്ടാമതായി, നിങ്ങളുടെ ആർക്കൈവുകളുടെ പട്ടികയ്ക്കു ശേഷം -Wl, -no-entire-archive ഉപയോഗിക്കാൻ മറക്കരുത്, കാരണം gcc നിങ്ങളുടെ ലിങ്കിലേക്ക് ആർക്കൈവുകളുടെ പട്ടിക ചേർക്കുന്നു, കൂടാതെ നിങ്ങൾക്ക് ഈ ഫ്ലാഗും അതും ബാധിക്കണമെന്നില്ല.

- ചിഹ്ന ചിഹ്നം

ചിഹ്നത്തിനായി ഒരു റാപ്പർ ഫംഗ്ഷൻ ഉപയോഗിക്കുക. "__ wrap_symbol" എന്ന ചിഹ്നത്തിലെ ഏതെങ്കിലും നിർവ്വചിച്ച റഫറൻസ് പരിഹരിക്കപ്പെടും. "__real_symbol" എന്നതിലേക്ക് വ്യക്തമാക്കിയ ഏത് റെഫറൻസും ചിഹ്നമാക്കി പരിഹരിക്കപ്പെടും.

ഒരു സിസ്റ്റം ഫംഗ്ഷനായി ഒരു റാപ്പർ നൽകാൻ ഇത് ഉപയോഗിയ്ക്കാം. റാപ്പർ ഫംഗ്ഷനെ "__wrap_symbol" എന്ന് വിളിക്കണം. സിസ്റ്റം പ്രവർത്തനത്തെ വിളിക്കാൻ ആഗ്രഹിക്കുന്നെങ്കിൽ, അത് "__ real_symbol" എന്ന് വിളിക്കണം.

ഒരു ചെറിയ ഉദാഹരണം ഇതാ:

void * __wrap_malloc (int c) {printf ("malloc% ld \ n" എന്ന് വിളിക്കുന്നു, c); __real_malloc (c) തിരികെ നൽകുക; }

--wrap malloc ഉപയോഗിച്ചു് നിങ്ങൾക്കു് ഈ ഫയൽ ഉപയോഗിച്ചു് വേറൊരു കോഡ് ചേർത്തിട്ടുണ്ടെങ്കിൽ , "malloc" എന്ന കോളുകൾക്ക് പകരം "__wrap_malloc" ഫംഗ്ഷൻ വിളിയ്ക്കും. "__wrap_malloc" എന്നതിലെ "__real_malloc" എന്നതിലേക്കുള്ള കോൾ യഥാർത്ഥ "malloc" ഫങ്ഷനെ വിളിക്കും.

ഒരു "__real_malloc" ഫങ്ഷനെയും നൽകാം. അതിനാൽ, --wrap ഐച്ഛികമില്ലാത്ത ലിങ്കുകൾ വിജയിക്കും. നിങ്ങൾ ഇതു ചെയ്യുകയാണെങ്കിൽ, "__ real_malloc" എന്ന നിർവചനം അതേ ഫയലിൽ "__wrap_malloc" എന്ന് നിർവചിക്കരുത്; അങ്ങനെയാണെങ്കിൽ, "malloc" - ലേക്ക് മായ്ക്കുന്നതിനു് അതു് ലഭ്യമാക്കുന്നതിനു് മുമ്പു് അസംബ്ളി കോൾ കണ്ടുപിടിച്ചേക്കാം.

--enable-new-dtags

--disable-new-dtags

ELF ലെ പുതിയ ചലനാത്മക ടാഗുകൾ സൃഷ്ടിക്കാൻ ഈ ലിങ്കറിന് കഴിയും. എന്നാൽ പഴയ ELF സംവിധാനങ്ങൾ അവർക്ക് മനസ്സിലാകണമെന്നില്ല. --enable-new-dtags സൂചിപ്പിക്കണമെങ്കിൽ ആവശ്യമുളള ഡൈനാമിക് ടാഗുകൾ സൃഷ്ടിക്കും. --disable-new-dtags നിങ്ങൾ വ്യക്തമാക്കിയാൽ, പുതിയ ഡൈനാമിക് ടാഗുകൾ സൃഷ്ടിക്കില്ല. സ്ഥിരസ്ഥിതിയായി, പുതിയ ചലനാത്മക ടാഗുകൾ സൃഷ്ടിക്കുന്നില്ല. ഈ ഉപാധികൾക്കായി മാത്രം നിങ്ങൾക്കു് എഫ്എഫ്ഇ സിസ്റ്റങ്ങൾ മാത്രമേ ലഭ്യമുള്ളു.

I386 പേ ലിങ്കർ -ഷെയഡ് ഉപാധി പിന്തുണയ്ക്കുന്നു, ഇത് ഔട്ട്പുട്ട് ഒരു ഡൈനാമിക് ലിങ്ക്ഡ് ലൈബ്രറിയായി (ഡിഎൽഎൽ) ഒരു സാധാരണ എക്സിക്യൂട്ടബിളിന് പകരം നൽകുന്നു. നിങ്ങൾ ഈ ഐച്ഛികം ഉപയോഗിക്കുമ്പോൾ നിങ്ങൾ "* .dll" എന്ന ഔട്ട്പുട്ട് നൽകണം. ഇതുകൂടാതെ, ഒരു ഓബ്ജക്റ്റ് ഫയൽ പോലുള്ള ലിങ്കർ കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കുകയും ചെയ്ത സ്റ്റാൻഡേർഡ് "* .ഡെഫ" ഫയലുകളെ ലിങ്കർ പൂർണ്ണമായി പിന്തുണയ്ക്കുന്നു (വാസ്തവത്തിൽ, അവയിൽ ലിങ്ക്, ഒരു സാധാരണ ഒബ്ജക്റ്റ് ഫയൽ പോലെ).

എല്ലാ ടാർഗെറ്റുകളും സാധാരണയുള്ള ഓപ്ഷനുകൾക്കു് പുറമേ, i386 PE ലെവൽ പിന്തുണയ്ക്കുന്ന അധിക കമാൻഡ് ലൈൻ ഓപ്ഷനുകൾ i386 PE ടാർഗറ്റിനു് നൽകുന്നു. മൂല്യങ്ങൾ എടുക്കുന്ന ഓപ്ഷനുകൾ അവയുടെ മൂല്യങ്ങളിൽ നിന്ന് ഒരു സ്പെയ്സ് അല്ലെങ്കിൽ ഒരു സമ ചിഹ്നം ഉപയോഗിച്ച് വേർതിരിക്കാം.

--add-stdcall-alias

നൽകിയിരിക്കുകയാണെങ്കിൽ, ഒരു stdcall സഫിക്സ് (@ nn ) ഉള്ള ചിഹ്നങ്ങൾ ഇമ്പോർട്ടുചെയ്യപ്പെടുകയും ഉപഫിക്സ് ഉപയോഗിച്ച് നീക്കം ചെയ്യുകയും ചെയ്യും.

--base-file ഫയൽ

Dlltool ഉപയോഗിച്ച് DLLs ഉണ്ടാക്കുന്നതിനാവശ്യമായ എല്ലാ സ്ഥലങ്ങളുടെയും അടിസ്ഥാന വിലാസങ്ങൾ സംരക്ഷിക്കുന്ന ഫയലിന്റെ പേരുമായി ഫയൽ ഉപയോഗിക്കുക.

--dll

ഒരു സാധാരണ എക്സിക്യൂട്ടബിളിന് പകരം ഒരു DLL സൃഷ്ടിക്കുക. നൽകിയിരിക്കുന്ന ".def" ഫയലിൽ നിങ്ങൾക്ക് "ലൈബ്രറി" അല്ലെങ്കിൽ "ഷെയേർഡ്" ഉപയോഗിക്കാം.

--enable-stdcall-fixup

--disable-stdcall-fixup

ഒരു ചിഹ്ന പരിഹരിക്കാന് കഴിയാത്ത ഒരു ചിഹ്നം കണ്ടെത്തുകയാണെങ്കില്, ചിഹ്നത്തിന്റെ പേരിന്റെ രൂപത്തില് മാത്രം വ്യത്യാസമുണ്ടാക്കുന്ന മറ്റൊരു ചിഹ്നങ്ങള് തിരയുന്നതിലൂടെ "` ഫസി ലിങ്ക് '' ചെയ്യുന്നതിനായി ശ്രമിച്ചു, ആ ചിഹ്നത്തെ ലിങ്കുചെയ്ത് ആ ചിഹ്നം പരിഹരിക്കുകയും ചെയ്യും മത്സരത്തിൽ. ഉദാഹരണമായി, "_foo" എന്ന ഫങ്ഷനെ "_foo @ 12" എന്ന ഫങ്ഷനിൽ "_foo" എന്ന ലിങ്ക് ഉപയോഗിക്കാം, അല്ലെങ്കിൽ നിർവചിക്കാത്ത അടയാള "_bar @ 16" ഫങ്ഷനെ "_bar" എന്ന് ബന്ധിപ്പിച്ചിരിക്കാം. ലിങ്കർ ഇതു ചെയ്യുമ്പോൾ, അത് ഒരു മുന്നറിയിപ്പ് അച്ചടിക്കുന്നു, സാധാരണയായി അത് ലിങ്കുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു, പക്ഷേ ചിലപ്പോൾ ഇംപോർട്ട് മൂന്നാം-കക്ഷി ഡ്യൂല്ലുകളിൽ നിന്ന് ഉൽഭവിച്ച ലൈബ്രറികൾ ഈ സവിശേഷത ഉപയോഗയോഗ്യമായതാവാം. --enable-stdcall-fixup സൂചിപ്പിയ്ക്കുന്നെങ്കിൽ, ഈ വിശേഷത പൂർണ്ണമായി പ്രാപ്തമാക്കുകയും മുന്നറിയിപ്പുകൾ അച്ചടിക്കുകയും ചെയ്യുന്നതല്ല. --disable-stdcall-fixup , ഈ വിശേഷത അപ്രാപ്തമാക്കി, അത്തരം പൊരുത്തക്കേടുകൾ പിശകുകളായി കണക്കാക്കുന്നു.

- എക്സ്പോർട്ട്-എല്ലാ ചിഹ്നങ്ങളും

ഒരു ഡിഎൽഎൽ നിർമ്മിക്കാൻ ഉപയോഗിക്കുന്ന ഒബ്ജക്റ്റുകളിൽ എല്ലാ ആഗോള ചിഹ്നങ്ങളും ഡിഎൽഎൽ എക്സ്പോർട്ടുചെയ്യും. കയറ്റുമതി ചെയ്ത ചിഹ്നങ്ങൾ ഉണ്ടാവുകയാണെങ്കിൽ ഇതൊരു സ്ഥിരസ്ഥിതി ആണെന്ന് ശ്രദ്ധിക്കുക. ചിഹ്നങ്ങൾ എക്സ്എഫ് ഫയലുകളിലൂടെ എക്സ്പോർട്ട് ചെയ്യുമ്പോൾ അല്ലെങ്കിൽ ഫങ്ഷൻ ആട്രിബ്യൂട്ടുകൾ വഴി ആണവപരമായി എക്സ്പോർട്ടുചെയ്യുമ്പോൾ, ഈ ഉപാധി നൽകാത്തിടത്തോളം സ്വതവേ മറ്റൊന്നും എക്സ്പോർട്ട് ചെയ്യുന്നതല്ല. "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", "impure_ptr" എന്നീ ചിഹ്നങ്ങൾ സ്വയം എക്സ്പോർട്ടുചെയ്യപ്പെടുന്നില്ല. കൂടാതെ, മറ്റ് ഡിഎൽഎകളിൽ നിന്നും ഇറക്കുമതി ചെയ്ത ചിഹ്നങ്ങൾ പുനർ കയറ്റുമതി ചെയ്യാൻ കഴിയില്ല, അല്ലെങ്കിൽ "___" എന്ന് തുടങ്ങുന്നതോ അല്ലെങ്കിൽ "__ഇമേ" ന്നോ അവസാനിപ്പിക്കുകയോ പോലുള്ള DLL- ന്റെ ആന്തരിക ശൈലി വ്യക്തമാക്കുന്ന ചിഹ്നങ്ങൾ. കൂടാതെ, "libgcc", "libstd ++", "libmingw32", അല്ലെങ്കിൽ "crtX.o" എന്നിവയിൽ നിന്നുള്ള ചിഹ്നങ്ങൾ എക്സ്പോർട്ടുചെയ്യപ്പെടില്ല. "__rtti_" അല്ലെങ്കിൽ "__builtin_" എന്ന പേരിൽ ആരംഭിക്കുന്ന ചിഹ്നങ്ങൾ സി ++ ഡിഎൽഎല്ലുകൾക്കുള്ള സഹായത്തിനായി എക്സ്പോർട്ട് ചെയ്യുന്നതല്ല. അവസാനമായി, എക്സ്പോർട്ട് ചെയ്യാത്ത സൈഗ്വിൻ-സ്വകാര്യ ചിഹ്നങ്ങളുടെ വിപുലമായ ഒരു ലിസ്റ്റ് (സൈഗ്വിൻ ടാർഗെറ്റുകൾക്കായി 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_premain2", "cygwin_premain3 "," പരിസ്ഥിതി ".

--exclude ചിഹ്നങ്ങളുടെ ചിഹ്നം , ചിഹ്നം , ...

ഓട്ടോമാറ്റിക്കായി എക്സ്പോർട്ടുചെയ്യാത്ത ചിഹ്നങ്ങളുടെ ലിസ്റ്റ് വ്യക്തമാക്കുന്നു. ചിഹ്ന നാമങ്ങൾ കോമകളോ കോളനുകളോ ഉപയോഗിച്ച് വേർതിരിക്കാനിടയുണ്ട്.

libex-libs libible , lib ...

ചിഹ്നങ്ങൾ യാന്ത്രികമായി എക്സ്പോർട്ടുചെയ്യാൻ പാടില്ലാത്ത ആർക്കൈവ് ലൈബ്രറികളുടെ ഒരു ലിസ്റ്റ് നിർദ്ദേശിക്കുന്നു. ലൈബ്രറി പേരുകൾ കോമകളോ കോളണുകളോ ഉപയോഗിച്ച് വേർതിരിക്കാനിടയുണ്ട്. സ്വപ്രേരിത കയറ്റുമതിയിൽ നിന്നും എല്ലാ ആർക്കൈവ് ലൈബ്രറികളിലും ചിഹ്നങ്ങളെ "--exclude-libs ALL" എന്ന് സൂചിപ്പിക്കുന്നു. ഒരു .def ഫയലിൽ സ്പഷ്ടമായി കാണിച്ചിരിക്കുന്ന ചിഹ്നങ്ങൾ ഈ ഓപ്ഷൻ കണക്കിലെടുക്കാതെ, ഇപ്പോഴും എക്സ്പോർട്ടുചെയ്യപ്പെടുന്നു.

- ഫയൽ-അലൈൻമെന്റ്

ഫയൽ വിന്യാസം വ്യക്തമാക്കുക. ഫയലിലെ ഭാഗങ്ങൾ എല്ലായ്പ്പോഴും ഈ നമ്പരുകളുടെ ഗുണിതമായ ഫയൽ ഓഫ്സെറ്റുകളിൽ ആരംഭിക്കും. ഇത് സ്ഥിരമായി 512 ആണ്.

- റിസർവ് റിസർവ്

- റിസർവ് റിംഗ്വ് , ടേം

ഈ പ്രോഗ്രാമിനായി ഉപയോഗിക്കുന്നതിനായി കരുതിവയ്ക്കാനായി മെമ്മറിയുടെ വ്യാപ്തി (ഐച്ഛികം ഉറപ്പാക്കേണ്ട) വ്യക്തമാക്കുക. സ്വതവേ 1Mb റിസർവ് ചെയ്തു, 4 കെ ചെയ്തു.

--image അടിസ്ഥാന മൂല്യം

നിങ്ങളുടെ പ്രോഗ്രാം അല്ലെങ്കിൽ dll ന്റെ അടിസ്ഥാന വിലാസമായി മൂല്യം ഉപയോഗിക്കുക. നിങ്ങളുടെ പ്രോഗ്രാം അല്ലെങ്കിൽ ഡിൽ ലോഡ് ചെയ്യുമ്പോൾ ഉപയോഗിയ്ക്കുന്ന ഏറ്റവും കുറഞ്ഞ മെമ്മറി ലൊക്കേഷൻ ഇതാണ്. നിങ്ങളുടെ ഡ്യൂല്ലുകളുടെ പ്രവർത്തനം മാറ്റി സ്ഥാപിക്കാനും മെച്ചപ്പെടുത്താനുമുള്ള ആവശ്യം കുറയ്ക്കുന്നതിന്, ഓരോരുത്തർക്കും അദ്വിതീയമായ ഒരു അഡ്രസ് വേണം, മറ്റേതെങ്കിലും പിഴവുകൾക്കപ്പുറം പോകരുത്. എക്സിക്യൂട്ടബിൾസിനായി സ്ഥിരസ്ഥിതി 0x400000 ആണ്, കൂടാതെ dlls നുള്ള 0x10000000 ആണ്.

--kill-at

നൽകിയിട്ടുണ്ടെങ്കിൽ, എക്സ്പോർട്ട് ചെയ്യുന്നതിനു മുമ്പായി ചിഹ്നങ്ങളിൽ നിന്ന് stdcall സഫിക്സുകൾ (@ nn ) നീക്കം ചെയ്യും.

- പ്രധാന-ഇമേജി-പതിപ്പ് മൂല്യം

`` ഇമേജ് വേർഷൻ '' ന്റെ മുഖ്യ നമ്പർ സെറ്റ് ചെയ്യുന്നു. 1.

- പ്രധാന ഓസ്-പതിപ്പ് മൂല്യം

`` Os version '' യുടെ പ്രധാന എണ്ണം സജ്ജീകരിക്കുന്നു. 4 ലെ സ്ഥിരസ്ഥിതികൾ.

- പ്രധാന-സബ്സിസ്റ്റം-പതിപ്പു് മൂല്യം

`` സബ്സിസ്റ്റം പതിപ്പിൽ '' പ്രധാന നമ്പർ സജ്ജീകരിയ്ക്കുന്നു. 4 ലെ സ്ഥിരസ്ഥിതികൾ.

- മിനിറ്റ്-ഇമേജ്-പതിപ്പ് മൂല്യം

`` ഇമേജ് പതിപ്പിന്റെ '' ചെറിയ സംഖ്യ സജ്ജമാക്കുന്നു. സ്ഥിരമായവ 0 ആണ്.

- മിനിറ്റ്- os- പതിപ്പ് മൂല്യം

`` Os version '' എന്നതിൻറെ ചെറിയ സംഖ്യ സജ്ജമാക്കുന്നു. സ്ഥിരമായവ 0 ആണ്.

--minor-സബ്സിസ്റ്റം-പതിപ്പു് മൂല്യം

`സബ്സിസ്റ്റം പതിപ്പിൽ 'ചെറിയ സംഖ്യ സജ്ജമാക്കുന്നു. സ്ഥിരമായവ 0 ആണ്.

--output-def ഫയൽ

ലിങ്കർ സൃഷ്ടിക്കുന്ന ഫയൽ ഡിഎൽഎല്ലിനു യോജിക്കുന്ന DEF ഫയൽ അടങ്ങുന്ന ഫയൽ ഫയൽ സൃഷ്ടിക്കും. ഈ DEF ഫയൽ ("* .def" എന്നറിയപ്പെടണം) "dlltool" ഉള്ള ഒരു ഇമ്പോർട്ടുചെയ്യൽ ലൈബ്രറി സൃഷ്ടിക്കാൻ ഉപയോഗിച്ചേക്കാം അല്ലെങ്കിൽ യാന്ത്രികമായി അല്ലെങ്കിൽ സംശയപൂർവ്വം എക്സ്പോർട്ട് ചെയ്ത ചിഹ്നങ്ങളിൽ റഫറൻസായി ഉപയോഗിക്കാം.

--out-implib ഫയൽ

ലിങ്കർ ലിങ്കർ സൃഷ്ടിക്കുന്ന ഡിഎൽഎൽ പോലുള്ള ഒരു ഇംപോർട്ട് ലിബ് അടങ്ങുന്ന ഫയൽ ഫയൽ ഉണ്ടാക്കുന്നു. ഈ ഇറക്കുമതി lib ("* .dll.a" അല്ലെങ്കിൽ "* .a" എന്ന് വിളിക്കപ്പെടേണ്ടതാണ്, അത് ഡിഎൻഎല്ലിനെതിരെ ക്ലയന്റുകളുമായി ബന്ധിപ്പിക്കാൻ ഉപയോഗിച്ചേക്കാം; ഈ സ്വഭാവം ഒരു പ്രത്യേക "dlltool" ഇമ്പോർട്ടുചെയ്യാനുള്ള ലൈബ്രറി സൃഷ്ടിക്കൽ നടപടി ഉപേക്ഷിക്കാൻ സാധിക്കും.

--enable-auto-ഇമേജ്-ബേസ്

"--image-base" ആർഗ്യുമെന്റ് ഉപയോഗിച്ചു് വ്യക്തമാക്കാതെ, DLL- കളുടെ ഇമേജുകൾ ഓട്ടോമാറ്റിയ്ക്കായി തെരഞ്ഞെടുക്കുക. ഓരോ DLL, ഇൻ-മെമ്മറി കൊഴിഞ്ഞുങ്ങൾ, റീസെക്കഷനുകൾ എന്നിവയ്ക്കായി തനത് ഇമേജ് ബേസ് സൃഷ്ടിക്കാൻ ഒരു ഹാഷ് ഉപയോഗിക്കുന്നതിലൂടെ പ്രോഗ്രാമിനെ നിർത്തലാക്കാൻ കാലതാമസം വരുത്താം.

--disable-auto-ഇമേജ്-ബേസ്

സ്വമേധയാ ഒരു ഇമേജ് ബേസ് സ്വയം സൃഷ്ടിക്കരുത്. യൂസർ-നിർദ്ദിഷ്ട ഇമേജ് ബേസ് ("--image-base") ഇല്ലെങ്കിൽ പ്ലാറ്റ്ഫോം സ്ഥിരസ്ഥിതി ഉപയോഗിക്കുക.

--dll-search-prefix സ്ട്രിംഗ്

ഒരു ഇമ്പോർട്ടുമി ലൈബ്രറി ഇല്ലാതെ ഡീമെന്റലായി ഒരു ഡിലിമിലേക്ക് ലിങ്ക് ചെയ്യുന്പോൾ, "lib .dll" ന് മുൻപ് " .dll" എന്നതിനായി തിരയുക. ഉദാഹരണത്തിന്, സൈഗ്വിൻ ഡിഎൽഎല്ലുകൾ സാധാരണയായി "--dll-search-prefix = cyg" ഉപയോഗിക്കുന്നു. വിവിധ സൈറ്റുകൾക്കുവേണ്ടി നിർമ്മിച്ച DLL- കളിൽ എളുപ്പത്തിൽ ഈ സ്വഭാവം സാധ്യമാണ്: സ്വദേശ, സൈഗ്വിൻ, യുവിൻ, pw തുടങ്ങിയവ.

- യാന്ത്രികമായി-യാന്ത്രിക-ഇറക്കുമതി ചെയ്യുക

DLLs ൽ നിന്നുള്ള DATA ഇറക്കുമതിയ്ക്കായി "_symbol" മുതൽ "__imp__symbol" വരെയുളള സങ്കീർണ്ണമായ ബന്ധം ഉണ്ടാക്കുക, കൂടാതെ ആ DATA എക്സ്പോർട്ടുകളുമായി ഇമ്പോർട്ട് ലൈബ്രറികൾ നിർമ്മിക്കുമ്പോൾ ആവശ്യമുള്ള തണക്കുന്ന ചിഹ്നങ്ങൾ ഉണ്ടാക്കുക. ഇത് സാധാരണയായി 'പ്രവർത്തിക്കുക' --- പക്ഷേ ചിലപ്പോൾ നിങ്ങൾ ഈ സന്ദേശം കണ്ടേക്കാം:

"variable '' ഓട്ടോമാറ്റിക്ക് ഇംപോർട്ട് ചെയ്യുവാൻ സാധ്യമല്ല.ഡ്രൈവറിന്" --enable-auto-import "എന്നതിനായുള്ള ഡോക്യുമെന്റേഷൻ വായിക്കുക."

രണ്ട് കോണ്സ്റ്റാന്റുകള് (Win32 ഇറക്കുമതി പട്ടികകള് മാത്രം അനുവദിക്കുന്നവ മാത്രം) നല്കുന്ന ഒരു വിലാസത്തില് ചില (സബ്) എക്സ്പ്രഷന് ലഭ്യമാകുമ്പോള് ഈ സന്ദേശം സംഭവിക്കുന്നു. ഒരു ഡിഎൽഎൽ നിന്ന് ഇറക്കുമതി ചെയ്ത ഘടന ഘടനകളിലെ അംഗങ്ങൾക്കുള്ള ആക്സസ്, അതുപോലെ ഡിഎൽഎല്ലിൽ നിന്നും ഇറക്കുമതി ചെയ്ത ഒരു അറേ വേരിയബിളിലേക്ക് നിരന്തരമായ സൂചിക ഉപയോഗിക്കുന്നു. ഏതെങ്കിലും മൾട്ടിവേറ്ഡ് വേരിയബിള് (അറേ, സ്റ്രക്റ്റുകൾ, നീണ്ട ദൈർഘ്യം തുടങ്ങിയവ) ഈ പിശക് അവസ്ഥ ട്രിഗർ ചെയ്യാം. എന്നിരുന്നാലും, കുറ്റവാളികളുടെ എക്സ്പോർട്ട് ചെയ്ത ചരങ്ങളുടെ കൃത്യമായ ഡാറ്റ പരിഗണിക്കാതെ, ld അത് എല്ലായ്പ്പോഴും കണ്ടെത്തുകയും മുന്നറിയിപ്പ് പുറപ്പെടുവിക്കുകയും പുറത്തുകടക്കുകയും ചെയ്യും.

എക്സ്പോർട്ട് ചെയ്ത വേരിയബിളിന്റെ ഡാറ്റ തരം കണക്കിലെടുക്കാതെ, ഈ പ്രയാസത്തെ നേരിടാൻ ധാരാളം മാർഗ്ഗങ്ങളുണ്ട്:

--enable-runtime-pseudo-reloc സ്വിച്ച് ഉപയോഗിക്കുവാനുള്ള ഒരു മാർഗ്ഗം. റൺടൈം എൻവയണ്മെന്റിനായി നിങ്ങളുടെ ക്ലയന്റ് കോഡിൽ റെഫറൻസുകൾ ക്രമീകരിക്കുന്നതിനുള്ള ചുമതല ഇനിയുമുണ്ട്, അതിനാൽ റൺടൈം environtment ഈ സവിശേഷതയെ പിന്തുണയ്ക്കുമ്പോൾ മാത്രമേ ഈ രീതി പ്രവർത്തിക്കൂ.

രണ്ടാമത്തെ ഒരു പരിഹാരം 'സ്ഥിരാങ്കങ്ങള്' ഒരു വേരിയബിള് ആയിരിക്കണം - അതായത്, സമാഹരിച്ച സമയത്ത് അജ്ഞാതവും അണ്-ഒപ്റ്റിമബിളും. അറേകൾക്കായി രണ്ട് സാദ്ധ്യതകൾ ഉണ്ട്: എ) ഇൻഡക്സിയൻ (അറേയുടെ വിലാസം) ഒരു വേരിയബിൾ ഉണ്ടാക്കുക, അല്ലെങ്കിൽ ബി) 'സ്ഥിരമായ' ഇൻഡെക്സ് ഒരു വേരിയബിനെ ഉണ്ടാക്കുന്നു. ഇപ്രകാരം:

ബാഹ്യമായി തരം extern_array []; extern_array [1] -> {അസ്ഥിര തരം * t = extern_array; t [1]}

അഥവാ

ബാഹ്യമായി തരം extern_array []; extern_array [1] -> {അസ്ഥിര int t = 1; extern_array}

Structs (മറ്റ് എല്ലാ മൾട്ടിവേറ്ഡ് ഡാറ്റ തരങ്ങളും) സ്ട്രിങിനെ മാത്രം (അല്ലെങ്കിൽ ദൈർഘ്യമേറിയതാണ് അല്ലെങ്കിൽ ...) വേരിയബിളാക്കുന്നതിനുള്ള ഏക ഐച്ഛികം:

extern struct ഘടകം extern_struct.field -> {അസ്ഥിരമായ struct s * t = & extern_struct; t-> ഫീൽഡ്}

അഥവാ

പുറം നീണ്ട ദീർഘമായ extern_ll; extern_ll -> {അസ്ഥിര ദീർഘനാള് * local_ll = & extern_ll; * loc_ll}

ഈ പ്രശ്നം കൈകാര്യം ചെയ്യുന്ന മൂന്നാമത്തെ മാർഗ്ഗം കുറ്റാരോപിതമായ ചിഹ്നത്തിനായി 'ഓട്ടോ-ഇംപാക്റ്റ്' ഉപേക്ഷിക്കുക എന്നതാണ്, അത് "__clashpec (dllimport)" എന്ന് അടയാളപ്പെടുത്തുക. എന്നിരുന്നാലും, നിങ്ങൾ ഒരു 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) ഉൾപ്പെടുത്തിയിരിക്കും {/ * ഈ work32ound- ഉം സൈഗ്വിനുമായുള്ളതാണ്; "ഒപ്റ്റിമൈസ്" * / അസ്ഥിര int * parr = arr; printf ("% d \ n", parr [1]); }

പരിഹാരം 2:

(FOO_BUILD_DLL) നിർവ്വചിച്ച (FOO_BUILD_DLL) || നിർവ്വചിച്ച (FOO_BATATIC (dllexport) * / #if (നിർവ്വചിച്ച (_WIN32) || നിർവ്വചിച്ച (__ CYGWIN__)) &&! )) # FOO_IMPORT __declspec (dllimport) # വീതി # FF_IMPORT # exf ഔട്ട്പുട്ട് FOO_IMPORT intr [] നിർവചിക്കുക []; - foo.c # "foo.h" വാഹനം പ്രധാനവശം (int argc, char ** argv) {printf ("% d \ n", arr [1]); }

ഈ പ്രശ്നം ഒഴിവാക്കാനുള്ള നാലാമത്തെ വഴിയാണ് ദ്രോഹപരമായ ചരങ്ങൾക്ക് ( ഉദാഹരണത്തിന് set_foo () set_foo () , get_foo () accessor ഫംഗ്ഷനുകൾ) പകരം ഒരു ഫങ്ഷണൽ ഇന്റർഫെയിസ് ഉപയോഗിക്കാനായി നിങ്ങളുടെ ലൈബ്രറി വീണ്ടും കോഡ് ചെയ്യുക എന്നതാണ്.

--disable-auto-import

DLLs ൽ നിന്നും DATAimports നായി "_symbol" to "__imp__symbol" എന്ന sophisticalted ലിങ്ക് ചെയ്യാൻ ശ്രമിക്കരുത്.

--enable-runtime-pseudo-reloc

നിങ്ങളുടെ കോഡിൽ --enable-auto-import വിഭാഗത്തിൽ വിശദീകരിച്ചിട്ടുള്ള എക്സ്പ്രെഷനുകൾ അടങ്ങിയിരിക്കുന്നു. അതായത്, പൂജ്യമല്ലാത്ത ഓഫ്സെറ്റ് ഉപയോഗിച്ച് ഡിഎൽഎല്ലിൽ നിന്നുള്ള DATAimports, ഈ സ്വിച്ച്, 'റൺടൺ സ്യൂസോ റീസെക്കഷനുകൾ' എന്ന ഒരു വെക്റ്റർ സൃഷ്ടിക്കും, ഇത് റഫറൻസുകൾ ക്രമീകരിക്കാൻ റൺടൈം പരിസ്ഥിതി ഉപയോഗിക്കും നിങ്ങളുടെ ക്ലയന്റ് കോഡിലെ അത്തരം ഡാറ്റയിലേക്ക്.

--disable-runtime-pseudo-reloc

ഡിഎൽഎൽ അല്ലാത്ത DATA ഇമ്പോർട്ടുകൾക്ക് പകരം സ്യൂട്ട് റീസെക്കഷുകൾ ഉണ്ടാക്കരുത്. ഇതാണ് സ്ഥിരസ്ഥിതി.

--enable-extra-pe-dug

സ്വയം-ഇറക്കുമതി ചിഹ്നങ്ങളുമായി ബന്ധപ്പെട്ട കൂടുതൽ ഡീബഗ് വിവരം കാണിക്കുക.

--section-alignment

വിഭാഗം വിന്യാസം സജ്ജമാക്കുന്നു. ഈ നമ്പരിലെ ഒന്നിലധികം വിലാസങ്ങളിൽ മെമ്മറിയിലെ വിഭാഗങ്ങൾ എപ്പോഴും ആരംഭിക്കും. 0x1000 എന്നതിലേക്കുള്ള സ്ഥിരത.

- സ്റ്റോക്ക് റിസർവ്

- സ്റ്റോക്ക് റിസർവ് , പ്രതിജ്ഞാബദ്ധത

ഈ പ്രോഗ്രാമിനായി സ്റ്റാക്കായി ഉപയോഗിയ്ക്കുന്നതിനുള്ള മെമ്മറിയുടെ വ്യാപ്തി (കൂടാതെ, വേണമെങ്കിൽ). സ്വതവേ 2Mb റിസർവ് ചെയ്തു, 4K ചെയ്തു.

- subsystem ഏത്

--subsystem ഏത് : പ്രധാന

--subsystem ഏത് : പ്രധാന . പ്രായപൂർത്തിയാകാത്ത

നിങ്ങളുടെ പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യുന്ന സബ്സിസ്റ്റം വ്യക്തമാക്കുന്നു. "നേറ്റീവ്", "വിൻഡോസ്", "കൺസോൾ", "പോസിക്സ്" എന്നീ നിയമ മൂല്യങ്ങൾ. നിങ്ങൾ വേണമെങ്കിൽ സബ്സിസ്റ്റം പതിപ്പിനും സെറ്റ് ചെയ്യാം.

പ്രധാനപ്പെട്ടതു്: നിങ്ങളുടെ കംപ്യൂട്ടറിൽ എങ്ങനെയാണ് കമാൻഡ് ഉപയോഗിക്കേണ്ടത് എന്ന് കാണുവാൻ man command ( % man ) ഉപയോഗിക്കുക.