NAME ld - Paggamit ng LD, ang link ng GNU SINOPSIS ld mga pagpipilian objfile … DESCRIPTION ld pinagsasama ang isang bilang ng mga bagay at mga file ng archive, nagpapalipat-lipat sa kanilang data at may kaugnayan sa mga sanggunian ng simbolo. Karaniwan ang huling hakbang sa pag-compile ng isang programa ay ang tumakbold. ld tumatanggap ng mga file ng Linker Command Wika na nakasulat sa isang superset ng Link ng AT & T ng Link Editor ng Syntax ng Wika, upang magbigay ng malinaw at kabuuang kontrol sa proseso ng pag-uugnay. Ang pahina ng taong ito ay hindi naglalarawan sa command language; tingnan angld entry sa "info", o ang manu-manong ld: ang linker ng GNU, para sa buong mga detalye sa wika ng command at sa iba pang mga aspeto ng link na GNU. Ang bersyon na ito ngld gumagamit ng pangkalahatang layunin ng mga aklatan ng BFD upang gumana sa mga file ng bagay. Pinapayagan nitold upang basahin, pagsamahin, at isulat ang mga file ng bagay sa maraming iba't ibang mga format --- halimbawa, COFF o "a.out". Ang iba't ibang mga format ay maaaring magkasama upang makagawa ng anumang magagamit na uri ng object file. Bukod sa kakayahang magamit nito, ang linker ng GNU ay higit na nakakatulong kaysa iba pang mga link sa pagbibigay ng impormasyon sa diagnostic. Maraming mga linkers abandunahin pagpapatupad kaagad kapag nakakaranas ng isang error; Kung kailan pwede,ld patuloy na isinasagawa, na nagpapahintulot sa iyo na makilala ang iba pang mga error (o, sa ilang mga kaso, upang makakuha ng isang output file sa kabila ng error). Ang link ng GNUld ay sinadya upang masakop ang isang malawak na hanay ng mga sitwasyon, at upang maging tugma hangga't maaari sa iba pang mga linker. Bilang resulta, marami kang pagpipilian upang makontrol ang pag-uugali nito. MGA OPTION Ang linker ay sumusuporta sa isang kalabisan ng mga pagpipilian sa command-line, ngunit sa aktwal na kasanayan ilang ng mga ito ay ginagamit sa anumang partikular na konteksto. Halimbawa, ang madalas na paggamit ngld ay i-link ang karaniwang mga file ng Unix na bagay sa isang pamantayan, suportado ng sistema ng Unix. Sa ganitong sistema, i-link ang isang file na "hello.o": ld -o /lib/crt0.o hello.o -lcSinasabi nitold upang makabuo ng isang file na tinatawag output bilang resulta ng pag-uugnay sa file na "/lib/crt0.o" na may "hello.o" at ang library na "libc.a", na magmumula sa karaniwang mga direktoryo ng paghahanap. (Tingnan ang talakayan ng-l opsyon sa ibaba.) Ang ilan sa mga pagpipilian sa command-line sald maaaring itukoy sa anumang punto sa command line. Gayunpaman, ang mga pagpipilian na tumutukoy sa mga file, tulad ng-l o-T, kaya mabasa ang file sa punto kung saan lumilitaw ang opsyon sa linya ng command, na may kaugnayan sa mga file ng bagay at iba pang mga opsyon ng file. Ang pag-ulit ng mga di-file na mga opsyon na may ibang argument ay walang karagdagang epekto, o i-override ang mga naunang paglitaw (mga karagdagang papuntang kaliwa sa command line) ng opsyong iyon. Ang mga pagpipilian na maaaring tinukoy nang higit sa isang beses ay nakasaad sa mga paglalarawan sa ibaba. Ang mga argumento ng hindi opsyon ay mga object file o archive na kung saan ay mai-link nang sama-sama. Maaari silang sundin, mauna, o magkakasama sa mga opsyon ng command-line, maliban na ang argumento ng object file ay maaaring hindi mailagay sa pagitan ng isang opsyon at ang argumento nito. Kadalasan ang tagapamagitan ay mahihingi ng hindi bababa sa isang bagay na file, ngunit maaari mong tukuyin ang iba pang mga paraan ng binary input file gamit-l, -R, at ang script command language. Kung hindi Tinukoy ang mga binary input na file sa lahat, ang linker ay hindi gumagawa ng anumang output, at naglalabas ng mensaheWalang mga input file. Kung ang linker ay hindi makilala ang format ng isang bagay na file, ito ay ipalagay na ito ay isang linker na script. Ang isang script na tinukoy sa paraang ito ay augments sa pangunahing linker script na ginamit para sa link (alinman sa default na linker script o ang isa na tinukoy sa pamamagitan ng paggamit-T). Pinapayagan ng tampok na ito ang linker na mag-link laban sa isang file na mukhang isang bagay o isang archive, ngunit aktwal na tinukoy lamang ang ilang mga halaga ng simbolo, o gumagamit ng "INPUT" o "GROUP" upang i-load ang iba pang mga bagay. Tandaan na ang pagtukoy ng isang script sa ganitong paraan ay augment lamang sa pangunahing script ng linker; gamitin ang-T opsyon upang palitan ang default na linker script ganap. Para sa mga opsyon na ang mga pangalan ay isang solong titik, ang mga argumento sa opsyon ay dapat na sundin ang sulat ng opsyon nang hindi pumipili ng whitespace, o bibigyan bilang hiwalay na mga argumentang kaagad na sumusunod sa opsyon na nangangailangan ng mga ito. Para sa mga pagpipilian na ang mga pangalan ay maraming mga titik, alinman sa isang dash o dalawang maaaring mauna ang opsyon na pangalan; Halimbawa,-trace-symbol at- simbolong simbolo ay katumbas. Tandaan - mayroong isang pagbubukod sa panuntunang ito. Maraming mga pagpipilian sa titik na nagsisimula sa isang mas mababang kaso 'o' ay maaari lamang mauna sa pamamagitan ng dalawang gitling. Ito ay upang mabawasan ang pagkalito sa-o pagpipilian. Kaya halimbawa-omagic nagtatakda ng output file name samagic samantalang--omagic nagtatakda ng NMAGIC flag sa output. Ang mga pangangatwiran sa mga opsyon ng maraming titik ay dapat na ihihiwalay mula sa pangalan ng opsyon sa pamamagitan ng isang katumbas na tanda, o bibigyan ng hiwalay na mga argumento kaagad kasunod ng pagpipiliang nangangailangan ng mga ito. Halimbawa,- Strong-simbolo foo at--trace-symbol = foo ay katumbas. Natatanging mga pagdadaglat ng mga pangalan ng mga opsyon na maraming titik ang tinatanggap. Tandaan - kung ang linker ay sinasabing hindi tuwiran, sa pamamagitan ng isang driver ng compiler (eggcc) kung gayon ang lahat ng mga pagpipilian sa command line link ay dapat na prefix ng-Wl, (o kahit anong angkop para sa partikular na driver ng compiler) tulad nito: gcc -Wl, - startgroup foo.o bar.o -Wl, - endgroupMahalaga ito, sapagkat kung hindi man ay maitatutupad ng programa ng driver ng tagatala ang mga pagpipilian sa pag-link, na nagreresulta sa isang masamang link. Narito ang isang talahanayan ng generic switch ng command line na tinanggap ng linker ng GNU: -a keyword Ang opsyon na ito ay suportado para sa compatibility ng HP / UX. Ang keyword Ang argument ay dapat na isa sa mga stringarchive, ibinahagi, odefault. -archive ay pantay na katumbas ng-Batik, at ang iba pang dalawang mga keyword ay katumbas ng pantay-Bynamnamic. Maaaring gamitin ang pagpipiliang ito anumang beses. -A arkitektura - arkitektura = arkitektura Sa kasalukuyang release ngld, ang pagpipiliang ito ay kapaki-pakinabang lamang para sa pamilya ng mga architectures ng Intel 960. Sa nald pagsasaayos, ang arkitektura Ang argumento ay kinikilala ang partikular na arkitektura sa 960 na pamilya, na nagpapagana ng ilang mga pananggalang at pagbabago sa landas ng paghahanap ng archive-library. Mga hinaharap na paglabas ngld maaaring suportahan ang katulad na pag-andar para sa iba pang mga pamilya ng arkitektura. -b input-format --format = input-format ld maaaring i-configure upang suportahan ang higit sa isang uri ng object file. Kung ang iyongld ay naka-configure sa ganitong paraan, maaari mong gamitin ang-b pagpipilian upang tukuyin ang binary na format para sa mga input na file ng file na sumusunod sa pagpipiliang ito sa command line. Kahit nald ay naka-configure upang suportahan ang mga alternatibong format ng bagay, hindi mo karaniwang kailangan upang tukuyin ito, bilangld dapat i-configure na asahan bilang default na format ng pag-input ang pinaka-karaniwang format sa bawat makina. input-format ay isang string ng teksto, ang pangalan ng isang partikular na format na suportado ng mga aklatan ng BFD. (Maaari mong ilista ang magagamit na binary na mga format na mayobjdump -i.) Baka gusto mong gamitin ang pagpipiliang ito kung ikaw ay nag-uugnay sa mga file na may hindi pangkaraniwang binary na format. Maaari mo ring gamitin-b upang lumipat ng mga format nang tahasang (kapag nag-uugnay sa mga file ng bagay ng iba't ibang mga format), sa pamamagitan ng pagsasama-b input-format bago ang bawat pangkat ng mga file ng bagay sa isang partikular na format. Ang default na format ay kinuha mula sa variable ng kapaligiran na "GNUTARGET". Maaari mo ring tukuyin ang format ng pag-input mula sa isang script, gamit ang command na "TARGET"; -c MRI-commandfile --mri-script = MRI-commandfile Para sa pagiging tugma sa mga linker na ginawa ng MRI,ld tumatanggap ng mga file na script na nakasulat sa isang kahaliling, pinaghihigpitan na wika ng utos, na inilarawan sa seksyong MRI Mga katugmang Script File ng dokumentasyon ng GNU ld. Ipakilala ang mga file ng script ng MRI na may pagpipilian-c; gamitin ang-T pagpipilian upang patakbuhin ang mga script ng linker na nakasulat sa pangkalahatang layuninld wika ng scripting. Kung MRI-cmdfile ay hindi umiiral,ldhanapin ito sa mga direktoryo na tinukoy ng anuman-L mga pagpipilian. -d -dc -dp Ang tatlong pagpipilian ay katumbas; Ang maraming mga form ay suportado para sa pagiging tugma sa ibang mga linker. Nagtatakda sila ng espasyo sa mga karaniwang simbolo kahit na tinukoy ang isang nakabalik na output file (kasama ang-r). Ang script na utos na "FORCE_COMMON_ALLOCATION" ay may parehong epekto. -e entry --entry = entry Gamitin entry bilang ang tahasang simbolo para sa pagsisimula ng pagpapatupad ng iyong programa, sa halip na ang default na entry point. Kung walang simbolo na pinangalanan entry , susubukang i-parse ang linker entry bilang isang numero, at gamitin iyon bilang address ng entry (ang bilang ay ipapaliwanag sa base 10; maaari kang gumamit ng isang nangungunang0x para sa base 16, o isang nangungunang0 para sa base 8). -E --Export-dynamic Kapag lumilikha ng isang dynamic na naka-link na maipapatupad, idagdag ang lahat ng mga simbolo sa dynamic na simbolo ng talahanayan. Ang dynamic na simbolo ng talahanayan ay ang hanay ng mga simbolo na nakikita mula sa mga dynamic na bagay sa run time. Kung hindi mo ginagamit ang opsyon na ito, ang karaniwang simbolo ng talahanayan ay karaniwang naglalaman lamang ng mga simbolo na tinutukoy ng ilang mga dynamic na bagay na nabanggit sa link. Kung gagamitin mo ang "dlopen" upang mag-load ng isang dynamic na bagay na kailangang sumangguni pabalik sa mga simbolo na tinukoy ng programa, sa halip ng ilang iba pang mga dynamic na bagay, malamang na kailangan mong gamitin ang pagpipiliang ito kapag nag-uugnay sa programa mismo. Maaari mo ring gamitin ang script na bersyon upang kontrolin kung anong mga simbolo ang dapat idagdag sa dynamic na simbolo ng talahanayan kung sinusuportahan ito ng format ng output. Tingnan ang paglalarawan ng--version-script sa @ ref {VERSION}. -EB Mag-link ng mga bagay na big-endian. Nakakaapekto ito sa default na format ng output. -EL Mag-link ng mga bagay na maliit-endian. Nakakaapekto ito sa default na format ng output. -f - Kasangkapan pangalan Kapag lumilikha ng isang bagay na ibinahagi ng ELF, itakda ang panloob na field na DT_AUXILIARY sa tinukoy na pangalan. Ito ay nagsasabi sa dynamic na linker na ang talahanayan ng simbolo ng nakabahaging bagay ay dapat gamitin bilang pandiwang pantulong na filter sa talahanayan ng simbolo ng nakabahaging bagay pangalan . Kung mag-link ka mamaya ng isang programa laban sa filter na bagay na ito, pagkatapos, kapag pinatakbo mo ang programa, makikita ng dynamic na linker ang field na DT_AUXILIARY. Kung ang dynamic na linker ay malutas ang anumang mga simbolo mula sa filter na bagay, susuriin muna kung may kahulugan sa nakabahaging bagay pangalan . Kung mayroong isa, ito ay gagamitin sa halip ng kahulugan sa filter na bagay. Ang ibinahaging bagay pangalan hindi kailangang magkaroon. Kaya ang ibinahaging bagay pangalan ay maaaring gamitin upang magbigay ng isang alternatibong pagpapatupad ng ilang mga function, marahil para sa pag-debug o para sa partikular na pagganap ng makina. Ang pagpipiliang ito ay maaaring tinukoy ng higit sa isang beses. Ang mga entry na DT_AUXILIARY ay malilikha sa pagkakasunud-sunod kung saan lumilitaw ang mga ito sa command line. -F pangalan - filter pangalan Kapag lumilikha ng isang ELF shared object, itakda ang panloob na field na DT_FILTER sa tinukoy na pangalan. Sinasabi nito ang dynamic na linker na ang talahanayan ng simbolo ng nakabahaging bagay na nilikha ay dapat gamitin bilang isang filter sa talahanayan ng simbolo ng nakabahaging bagay pangalan . Kung mag-link ka mamaya ng isang programa laban sa filter na bagay na ito, pagkatapos, kapag pinatakbo mo ang programa, makikita ng dynamic na linker ang field na DT_FILTER. Ang dynamic na linker ay lulutas ang mga simbolo ayon sa talahanayan ng simbolo ng filter na bagay gaya ng dati, ngunit ito ay talagang mag-link sa mga kahulugan na natagpuan sa nakabahaging bagay pangalan . Kaya ang filter na bagay ay maaaring gamitin upang pumili ng isang subset ng mga simbolo na ibinigay ng bagay pangalan . Ginamit ng ilang mga mas lumang mga linker ang-F opsyon sa isang compilation toolchain para sa pagtukoy ng format ng object-file para sa parehong input at output object file. Ang linker ng GNU ay gumagamit ng iba pang mga mekanismo para sa layuning ito: ang-b, --format, --oformat mga pagpipilian, ang "TARGET" na utos sa mga script ng linker, at ang variable na "GNUTARGET". Ang tagatala ng GNU ay hindi papansinin ang-F pagpipilian kapag hindi lumilikha ng isang ELF shared object. -fini pangalan Kapag lumilikha ng isang ELF maipapatupad o ibinahaging bagay, tawagan ang NAME kapag ang maipapatupad o nakabahaging bagay ay nabawasan, sa pamamagitan ng pagtatakda ng DT_FINI sa address ng function. Bilang default, ang linker ay gumagamit ng "_fini" bilang function na tumawag. -g Binalewala. Ibinigay para sa pagiging tugma sa iba pang mga tool. -G halaga --gpsize = halaga Itakda ang maximum na laki ng mga bagay upang mai-optimize gamit ang GP register laki . Ito ay makahulugan lamang para sa mga format ng file ng bagay tulad ng MIPS ECOFF na sumusuporta sa paglalagay ng malalaking at maliliit na bagay sa iba't ibang mga seksyon. Ito ay hindi pinansin para sa iba pang mga format ng file ng bagay. -h pangalan -soname = pangalan Kapag lumilikha ng isang ELF shared object, itakda ang panloob na field na DT_SONAME sa tinukoy na pangalan. Kapag ang isang executable ay naka-link sa isang nakabahaging bagay na may isang patlang ng DT_SONAME, pagkatapos kapag ang executable ay nagpapatakbo sa dynamic na linker ay tangkaing i-load ang nakabahaging bagay na tinukoy ng DT_SONAME patlang sa halip na ang paggamit ng pangalan ng file na ibinigay sa linker. -i Magsagawa ng isang incremental link (katulad ng opsyon-r). -sa loob pangalan Kapag lumilikha ng isang ELF na maipapatupad o ibinahaging bagay, tawagan ang NAME kapag na-load ang executable o shared object, sa pamamagitan ng pagtatakda ng DT_INIT sa address ng function. Bilang default, ang linker ay gumagamit ng "_init" bilang function na tumawag. -l archive --library = archive Magdagdag ng archive file archive sa listahan ng mga file na mag-link. Maaaring gamitin ang pagpipiliang ito anumang beses.ld ay maghanap sa path-list para sa mga paglitaw ng "libarchive.a" para sa bawat archive tinukoy. Sa mga system na sumusuporta sa mga shared library,ld maaari ring maghanap ng mga aklatan na may mga extension maliban sa ".a". Sa partikular, sa mga sistema ng ELF at SunOS,ld ay maghanap ng isang direktoryo para sa isang library na may isang extension ng ".so" bago maghanap ng isa na may isang extension ng ".a". Sa pamamagitan ng convention, isang ".so" na extension ay nagpapahiwatig ng isang shared library. Ang linker ay maghanap ng isang archive nang isang beses lamang, sa lokasyon kung saan ito ay tinukoy sa command line. Kung ang archive ay tumutukoy sa isang simbolo na hindi natukoy sa ilang bagay na lumitaw bago ang archive sa command line, isasama ng linker ang naaangkop na (mga) file mula sa archive. Gayunpaman, ang isang di-natukoy na simbolo sa isang bagay na lumilitaw mamaya sa command line ay hindi magsasanhi sa linker upang maghanap muli sa archive. Tingnan ang-( opsyon para sa isang paraan upang pilitin ang linker upang maghanap ng mga archive nang maraming beses. Maaari mong ilista ang parehong archive nang maraming beses sa command line. Ang ganitong uri ng paghahanap sa archive ay karaniwang para sa mga link ng Unix. Gayunpaman, kung gumagamit kald onAIX, pansinin na iba ito sa pag-uugali ng AIX linker. -L searchdir --library-path = searchdir Magdagdag ng landas searchdir sa listahan ng mga landas na iyonld ay maghanap ng mga library ng archive atld kontrolin ang mga script. Maaari mong gamitin ang pagpipiliang ito anumang dami ng beses. Ang mga direktoryo ay hinahanap sa pagkakasunud-sunod kung saan tinukoy sila sa command line. Ang mga direktoryo na tinukoy sa command line ay hinanap bago ang mga default na direktoryo. Lahat-L nalalapat ang mga pagpipilian sa lahat-l mga pagpipilian, anuman ang pagkakasunud-sunod kung saan lumilitaw ang mga pagpipilian. Kung searchdir nagsisimula sa "=", pagkatapos ay ang "=" ay mapapalitan ng sysroot prefix , isang landas na tinukoy kapag naka-configure ang linker. Ang default na hanay ng mga landas ay hinanap (nang hindi tinukoy sa-L) depende sa kung aling mode ng pagtuladld ay ginagamit, at sa ilang mga kaso din sa kung paano ito ay naka-configure. Ang mga landas ay maaari ding tinukoy sa isang script na may link na "SEARCH_DIR" na utos. Ang mga direktoryo na tinukoy sa ganitong paraan ay hinahanap sa punto kung saan lumilitaw ang linker script sa command line. -m pagtulad Emulate ang pagtulad linker. Maaari mong ilista ang magagamit na mga emusyon sa- Sabiose o-Vmga pagpipilian. Kung ang-m Ang opsyon ay hindi ginagamit, ang pagtulad ay kinuha mula sa variable na "LDEMULATION" na kapaligiran, kung ito ay tinukoy. Kung hindi, ang default na pagtulad ay nakasalalay sa kung paano naka-configure ang linker. -M - Kopyahin-mapa I-print ang isang mapa ng link sa karaniwang output. Ang isang mapa ng link ay nagbibigay ng impormasyon tungkol sa link, kabilang ang mga sumusunod: * Kung saan ang mga file at mga simbolo ng bagay ay naka-map sa memorya. * Paano ilalaan ang karaniwang mga simbolo. * Lahat ng mga miyembro ng archive na kasama sa link, na may pagbanggit ng simbolo na naging dahilan upang dalhin ang miyembro ng archive. -n --magic I-off ang pagkakahanay ng pahina ng mga seksyon, at markahan ang output bilang "NMAGIC" kung maaari. -N --omagic Itakda ang mga seksyon ng teksto at data upang maging nababasa at maaaring maisulat. Gayundin, huwag i-align ng pahina ang segment ng data, at huwag paganahin ang pag-link laban sa mga nakabahaging mga library. Kung sinusuportahan ng format ng output ang mga numero ng estilo ng Unix, markahan ang output bilang "OMAGIC". - walang kapararakan Ang pagpipiliang ito ay nagpapabaya sa karamihan ng mga epekto ng-N pagpipilian. Itinatakda nito ang seksyon ng teksto upang mabasa lamang, at pinipilit ang segment ng data na maging nakahanay sa pahina. Tandaan - hindi pinapagana ng opsyong ito ang pag-link laban sa mga nakabahaging mga aklatan. Gamitin-Bynamnamic para dito. -o output --output = output Gamitin output bilang ang pangalan para sa programa na ginawa ngld; kung ang opsiyong ito ay hindi tinukoy, ang pangalan a.out ay ginagamit bilang default. Ang script na command na "OUTPUT" ay maaari ring tukuyin ang output file name. -O antas Kung antas ay isang numerong halaga na higit sa zerold optimize ang output. Ito ay maaaring tumagal ng mas mahaba at samakatuwid marahil ay dapat lamang pinagana para sa pangwakas na binary. -q --emit-relocs Iwanan ang mga seksyon ng relocation at mga nilalaman sa ganap na naka-link na exececutables. Maaaring kailanganin ng pag-aaral ng pag-link sa link at mga tool sa pag-optimize ang impormasyong ito upang maisagawa ang mga tamang pagbabago ng mga executable. Nagreresulta ito sa mas malalaking executable. Ang opsyon na ito ay kasalukuyang sinusuportahan lamang sa mga platform ng ELF. -r - naliligalig Gumawa ng relocatable output --- i.e., Bumuo ng isang output file na maaaring magkasabay maglingkod bilang input sald. Ito ay madalas na tinatawag bahagyang pag-uugnay . Bilang isang epekto, sa mga kapaligiran na sumusuporta sa karaniwang mga numero ng magic ng Unix, itinatakda din ng opsyong ito ang magic number ng output file sa "OMAGIC". Kung hindi tinukoy ang opsyong ito, ang isang absolute file ay ginawa. Kapag nag-uugnay sa mga programang C ++, ang pagpipiliang ito ay hindi malutas ang mga sanggunian sa mga constructor; upang gawin iyon, gamitin-Ur. Kapag ang isang input file ay walang katulad na format bilang output file, ang bahagyang pag-uugnay ay sinusuportahan lamang kung ang input file na ito ay hindi naglalaman ng anumang mga relocation. Iba't ibang mga format ng output ay maaaring magkaroon ng karagdagang paghihigpit; halimbawa, ang ilang mga "a.out" -based na mga format ay hindi sumusuporta sa bahagyang pag-uugnay sa mga input file sa iba pang mga format sa lahat. Ang pagpipiliang ito ay ginagawa ang parehong bagay gaya ng-i. -R filename --just-symbols = filename Basahin ang mga pangalan ng simbolo at ang kanilang mga address mula filename , ngunit huwag i-relocate ito o isama ito sa output. Pinapayagan nito ang iyong file ng output upang sumangguni sa simbolo sa ganap na mga lokasyon ng memorya na tinukoy sa ibang mga programa. Maaari mong gamitin ang pagpipiliang ito higit sa isang beses. Para sa pagiging tugma sa iba pang mga link sa ELF, kung ang-R Ang opsyon ay sinusundan ng isang pangalan ng direktoryo, sa halip na isang pangalan ng file, ito ay itinuturing bilang-rpath pagpipilian. -s --strip-all Iwanan ang lahat ng impormasyon ng simbolo mula sa output file. -S --strip-debug Iwanan ang impormasyon ng simbolo ng debugger (ngunit hindi lahat ng mga simbolo) mula sa output file. -t --Trace I-print ang mga pangalan ng mga file ng pag-input bilangld nagpoproseso sa kanila. -T scriptfile --script = scriptfile Gamitin scriptfile bilang script ng linker. Ang script na ito ay pumapalitlddefault na linker script (sa halip na idagdag ito), kaya commandfile dapat tukuyin ang lahat ng kailangan upang ilarawan ang output file. Kung scriptfile ay hindi umiiral sa kasalukuyang direktoryo, "ld" hinahanap ito sa mga direktoryo na tinukoy sa pamamagitan ng anumang nauuna-L mga pagpipilian. Maramihang-T maipon ang mga pagpipilian. -u simbolo --undefined = simbolo Force simbolo na ipasok sa output file bilang isang di-natukoy na simbolo. Ang paggawa nito ay maaaring, halimbawa, mag-trigger ng pag-link ng mga karagdagang mga module mula sa karaniwang mga aklatan.-u maaaring ulitin sa iba't ibang mga argumento ng pagpipilian upang magpasok ng mga karagdagang di-natukoy na simbolo. Ang opsyon na ito ay katumbas ng command na "EXTERN" na script ng linker. -Ur Para sa anumang bagay maliban sa mga programang C ++, ang pagpipiliang ito ay katumbas ng-r: ito ay bumubuo ng relocatable output --- i.e., isang output file na maaaring magkasabay maglingkod bilang input sald. Kapag nag-uugnay sa mga programang C ++,-Ur ay malutas ang mga sanggunian sa mga constructor, hindi katulad-r. Hindi ito gumagana upang magamit-Ur sa mga file na nauugnay sa kanilang sarili-Ur; kapag ang constructor table ay binuo, hindi ito maidaragdag sa. Gamitin-Ur para lamang sa huling bahagyang link, at-r para sa iba. --unique = SEKSYON Lumilikha ng isang hiwalay na seksyon ng output para sa bawat pagtutugma ng seksyon ng input SEKSYON , o kung ang opsyonal na wildcard SEKSYON nawawala ang argumento, para sa bawat seksyon ng pag-input ng mga ulila. Isang seksyon ng mga ulila ay hindi partikular na nabanggit sa isang script ng linker. Maaari mong gamitin ang pagpipiliang ito nang maraming beses sa command line; Pinipigilan nito ang normal na pagsasama ng mga seksyon ng input na may parehong pangalan, napakalaki ang mga takdang seksyon ng output sa isang script ng linker. -v - Pagbabago -V Ipakita ang numero ng bersyon para sald. Ang-V Inililista din ng opsyon ang suportadong emulations. -x - Narito ang lahat Tanggalin ang lahat ng mga lokal na simbolo. -X --discard-lokal Tanggalin ang lahat ng mga pansamantalang lokal na simbolo. Para sa karamihan ng mga target, ito ang lahat ng mga lokal na simbolo na ang mga pangalan ay nagsisimula saL. -y simbolo --trace-symbol = simbolo I-print ang pangalan ng bawat naka-link na file kung saan simbolo Lumilitaw. Ang pagpipiliang ito ay maaaring bibigyan ng anumang dami ng beses. Sa maraming mga sistema ay kinakailangan upang prepend isang salungguhit. Kapaki-pakinabang ang pagpipiliang ito kapag mayroon kang isang hindi natukoy na simbolo sa iyong link ngunit hindi mo alam kung saan nagmula ang sanggunian. -Y landas Magdagdag landas sa default na path ng paghahanap sa library. Ang opsyong ito ay umiiral para sa pagkakatugma ng Solaris. -z keyword Ang kinikilalang mga keyword ay "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "ngayon", "pinanggalingan", "combreloc", "nocombreloc" at "nocopyreloc ". Ang iba pang mga keyword ay hindi pinansin para sa pagkakatugma ng Solaris. Ang "initfirst" ay nagmamarka ng bagay na unang sinimulan sa runtime bago ang iba pang mga bagay.Ang "load" ay tumutukoy sa bagay na ang mga filtees ay naproseso kaagad sa runtime. Ang "nodefaultlib" ay tumutukoy sa bagay na ang paghahanap para sa mga dependency ng bagay na ito ay hindi papansinin anumang mga default na path ng paghahanap sa library. "nodelete" ang marka ng bagay ay hindi dapat ibale-wala sa runtime. Ang "nodlopen" ay nagmamarka ng bagay na hindi magagamit sa "dlopen". Ang "nodump" ay nagmamarka ng bagay na hindi maaaring itapon sa pamamagitan ng "dldump". "ngayon" ay tumutukoy sa bagay na may di-tamad na runtime binding. "pinanggalingan" ang mga bagay na maaaring maglaman ng $ ORIGIN. "defs" ang hindi pinahihintulutang mga simbolo. "muldefs" ay nagbibigay-daan sa maramihang mga kahulugan. Pinagsasama ng "combreloc" ang maramihang mga seksyon ng reloc at binubuo ang mga ito upang makagawa ng dynamic na simbolo lookup caching posible. "nocombreloc" hindi pinapagana ang maramihang mga seksyon ng reloc na pinagsasama. Ang "nocopyreloc" ay hindi pinapagana ang produksyon ng mga relocs ng kopya. -( archive -) --start-group archive --end-group Ang archive dapat ay isang listahan ng mga file ng archive. Maaaring ito ay alinman sa tahasang mga pangalan ng file, o-lmga pagpipilian. Ang tinukoy na mga archive ay paulit-ulit na hinanap hanggang sa walang bagong hindi nabanggit na mga sanggunian ang nilikha. Karaniwan, ang isang archive ay hinahanap nang isang beses lamang sa pagkakasunud-sunod na tinukoy sa command line. Kung kailangan ng isang simbolo sa archive na lutasin ang isang di-natukoy na simbolo na tinutukoy ng isang bagay sa isang archive na lumilitaw mamaya sa linya ng command, ang linker ay hindi magagawang upang malutas ang reference na iyon. Sa pamamagitan ng pagpapangkat ng mga archive, lahat ng mga ito ay paulit-ulit na hinanap hanggang sa malutas ang lahat ng mga posibleng sanggunian. Ang paggamit ng pagpipiliang ito ay may malaking halaga ng pagganap. Pinakamainam na gamitin lamang ito kapag may mga hindi maiiwasang pabilog na sanggunian sa pagitan ng dalawa o higit pang mga archive. --accept-unknown-input-arch --no-accept-unknown-input-arch Sinasabi ang linker upang tanggapin ang mga file ng pag-input na ang arkitektura ay hindi makilala. Ang palagay ay alam ng gumagamit kung ano ang ginagawa nila at sadyang nagnanais na mag-link sa mga di-kilalang mga input file na ito. Ito ang default na pag-uugali ng linker, bago i-release ang 2.14. Ang default na pag-uugali mula sa paglabas 2.14 pasulong ay upang tanggihan ang naturang mga input file, at kaya ang--accept-unknown-input-arch Ang pagpipilian ay naidagdag upang ibalik ang lumang pag-uugali. -assert keyword Ang pagpipiliang ito ay hindi pinansin para sa pagiging suno sa SunOS. -Bynamnamic -dy -call_shared Mag-link laban sa mga dynamic na library. Ito ay makahulugan lamang sa mga platform para sa kung aling mga shared library ang suportado. Ang pagpipiliang ito ay karaniwang ang default sa naturang mga platform. Ang iba't ibang variant ng pagpipiliang ito ay para sa pagiging tugma sa iba't ibang mga sistema. Maaari mong gamitin ang pagpipiliang ito ng maraming beses sa command line: nakakaapekto ito sa paghahanap ng library-l mga pagpipilian na sumusunod dito. -Blg Itakda ang bandang "DF_1_GROUP" sa entry na "DT_FLAGS_1" sa dynamic na seksyon. Ito ang nagiging sanhi ng link ng runtime upang pangasiwaan ang mga lookup sa bagay na ito at ang mga dependency nito ay gumanap lamang sa loob ng grupo.- walang-natukoy na ay ipinahiwatig. Ang opsyon na ito ay makahulugan lamang sa mga platform ng ELF na sumusuporta sa mga shared library. -Batik -dn -non_shared -static Huwag mag-link laban sa mga shared library. Ito ay makahulugan lamang sa mga platform para sa kung aling mga shared library ang suportado. Ang iba't ibang variant ng pagpipiliang ito ay para sa pagiging tugma sa iba't ibang mga sistema. Maaari mong gamitin ang pagpipiliang ito ng maraming beses sa command line: nakakaapekto ito sa paghahanap ng library-l mga pagpipilian na sumusunod dito. -Bymbolic Kapag lumilikha ng isang nakabahaging library, isailalim ang mga reference sa mga global na simbolo sa kahulugan sa loob ng shared library, kung mayroon man. Karaniwan, posible para sa isang programa na naka-link laban sa isang nakabahaging library upang i-override ang kahulugan sa loob ng shared library. Ang opsyon na ito ay makahulugan lamang sa ELFplatforms na sumusuporta sa mga shared library. - Suriin-seksyon --no-check-sections Humihingi ang linker hindi upang suriin ang mga address ng seksyon pagkatapos na italaga sa kanila upang makita kung mayroong anumang mga overlaps. Karaniwan ang tagapamagitan ay gagawa ng check na ito, at kung nahahanap nito ang anumang overlaps ito ay makakapagdulot ng angkop na mga mensahe ng error. Ang linker ay alam tungkol sa, at gumawa ng mga allowance para sa mga seksyon sa mga overlay. Ang pag-uugali ng default ay maaaring maibalik sa pamamagitan ng paggamit ng command line switch- Suriin-seksyon. --cref Output isang cross reference table. Kung ang isang mapa ng link ng mapa ay binuo, ang cross reference table ay nakalimbag sa file ng mapa. Kung hindi, ito ay nakalimbag sa karaniwang output. Ang format ng mesa ay sadyang simple, upang madali itong maproseso ng isang script kung kinakailangan. Ang mga simbolo ay naka-print out, pinagsunod-sunod ayon sa pangalan. Para sa bawat simbolo, isang listahan ng mga pangalan ng file ay ibinigay. Kung tinukoy ang simbolo, ang unang file na nakalista ay ang lokasyon ng kahulugan. Ang mga natitirang mga file ay naglalaman ng mga sanggunian sa simbolo. --no-define-common Pinipigilan ng pagpipiliang ito ang pagtatalaga ng mga address sa karaniwang mga simbolo. Ang script na command na "INHIBIT_COMMON_ALLOCATION" ay may parehong epekto. Ang--no-define-common Ang pagpipilian ay nagbibigay-daan sa decoupling ang desisyon upang magtalaga ng mga address sa Mga karaniwang simbolo mula sa pagpili ng uri ng output ng file; kung hindi man, isang pwersang uri ng output na hindi Relocatable ang nagtatalaga ng mga address sa Mga karaniwang simbolo. Paggamit--no-define-common Pinapayagan ang Mga karaniwang simbolo na na-reference mula sa isang nakabahaging library na itatalaga lamang ang mga address sa pangunahing programa. Tinatanggal nito ang hindi ginagamit na dobleng espasyo sa nakabahaging library, at pinipigilan din ang anumang posibleng pagkalito sa paglutas sa maling duplicate kapag maraming mga dynamic na module na may dalubhasang mga path ng paghahanap para sa resolution ng simbolo ng runtime. --defsym simbolo = pagpapahayag Gumawa ng globo na simbolo sa output file, na naglalaman ng absolute address na ibinigay ng pagpapahayag . Maaari mong gamitin ang pagpipiliang ito ng maraming beses kung kinakailangan upang tukuyin ang maraming mga simbolo sa command line. Ang isang limitadong porma ng aritmetika ay sinusuportahan para sa pagpapahayag sa kontekstong ito: maaari kang magbigay ng isang hexadecimal na pare-pareho o ang pangalan ng isang umiiral na simbolo, o gamitin ang "+" at "-" upang idagdag o ibawas ang hexadecimal constants o simbolo. Kung kailangan mo ng mas detalyadong mga expression, isaalang-alang ang paggamit ng linker command language mula sa isang script. Tandaan: hindi dapat magkaroon ng puting espasyo sa pagitan simbolo , ang katumbas ng pag-sign (``=''), at pagpapahayag . - tinamaan = estilo - walang demanda Pinipigilan ng mga pagpipiliang ito kung papalitin ang mga pangalan ng simbolo sa mga mensahe ng error at iba pang output. Kapag ang linker ay sinabihan na i-demangle, sinusubukan nito na ipakita ang mga pangalan ng simbolo sa isang nababasa na paraan: ito ay pinupuntahan ang mga nangungunang mga underscore kung ginagamit ito ng format ng file ng bagay, at nag-convert ng mga pangalan ng simbolong C ++ sa mga pangalan na nababasa ng gumagamit. Iba't ibang mga compiler ay may iba't ibang estilo ng mangling. Ang opsyonal na demangling style argument ay maaaring gamitin upang pumili ng isang angkop na demangling style para sa iyong tagatala. Ang linker ay magkakait sa pamamagitan ng default maliban kung ang kapaligiran ay nagbabagoCOLLECT_NO_DEMANGLE ay nakatakda. Ang mga opsyon na ito ay maaaring gamitin upang i-override ang default. - Katatawanan-linker file Itakda ang pangalan ng dynamic na linker. Ito ay makahulugan lamang kapag bumubuo ng mga dynamic na naka-link na mga executable ng ELF. Ang default na dynamic na linker ay karaniwang tama; huwag mong gamitin ito maliban kung alam mo kung ano ang iyong ginagawa. - pag-embed-relocs Ang pagpipiliang ito ay makahulugan lamang kapag nag-uugnay sa MIPS na naka-embed na PIC code, na binuo ng pagpipiliang -mag-embed na larawan sa GNU compiler at assembler. Ginagawa nito ang linker upang lumikha ng isang talahanayan na maaaring gamitin sa runtime upang maglipat ng anumang data na kung saan ay statically na-initialize sa mga halaga ng pointer. Tingnan ang code sa testsuite / ld-empic para sa mga detalye. - Mga nakamamatay na babala Tratuhin ang lahat ng mga babala bilang mga error. --force-exe-suffix Siguraduhin na ang output file ay may .exe suffix. Kung ang isang matagumpay na binuo na may ganap na naka-link na file ng output ay walang suot na ".exe" o ".dll", pinipilit ng opsyong ito ang linker upang kopyahin ang output file sa isa sa parehong pangalan na may ".exe" na suffix. Kapaki-pakinabang ang pagpipiliang ito kapag gumagamit ng mga unmodified Unix makefiles sa host ng Microsoft Windows, dahil ang ilang mga bersyon ng Windows ay hindi magpapatakbo ng isang imahe maliban kung nagtatapos ito sa isang ".exe" na suffix. --no-gc-seksyon --gc-sections Paganahin ang koleksyon ng basura ng hindi ginagamit na mga seksyon ng input. Ito ay hindi pinansin sa mga target na hindi sumusuporta sa pagpipiliang ito. Ang opsyon na ito ay hindi tugma sa-r, at hindi rin ito dapat gamitin sa dynamic na pag-uugnay. Ang default na pag-uugali (ng hindi gumaganap na koleksyon ng basura na ito) ay maaaring maibalik sa pamamagitan ng pagtukoy--no-gc-seksyon sa command line. - Tumulong Mag-print ng buod ng mga opsyon sa command-line sa karaniwang output at exit. - target-help I-print ang isang buod ng lahat ng target na partikular na pagpipilian sa karaniwang output at exit. -Map mapfile I-print ang isang mapa ng link sa file mapfile . Tingnan ang paglalarawan ng-M opsyon, sa itaas. --no-keep-memory ld normal na optimize para sa bilis sa paggamit ng memory sa pamamagitan ng pag-cache ng mga talahanayan ng simbolo ng mga input file sa memorya. Sinasabi ng opsyong itold sa halip na i-optimize para sa paggamit ng memory, sa pamamagitan ng pag-rereading ng mga talahanayan ng simbolo kung kinakailangan. Maaaring kailanganin ito kungld tumatakbo sa labas ng memory space habang nagli-link ng isang malaking executable. - walang-natukoy na -z defs Karaniwan kapag lumilikha ng di-sinasagisag na shared library, pinahihintulutan ang mga di-natukoy na simbolo at iniwan upang malutas sa pamamagitan ng runtime loader. Hindi pinahihintulutan ng mga pagpipiliang ito ang mga di-natukoy na simbolo. --allow-multiple-definition -z muldefs Karaniwan kapag ang isang simbolo ay tinukoy ng maraming beses, ang tagasulat ay mag-ulat ng isang nakamamatay na error. Pinapayagan ng mga pagpipiliang ito ang maraming mga kahulugan at ang unang kahulugan ay gagamitin. --allow-shlib-hindi natukoy Pahintulutan ang mga di-natukoy na simbolo sa mga ibinahaging bagay kahit kailan - hindi naka-set ang hindi natukoy. Ang netong resulta ay ang mga di-natukoy na mga simbolo sa mga regular na bagay ay magpapalitaw pa rin ng isang error, ngunit hindi natukoy na mga simbolo sa mga nakabahaging bagay ay hindi papansinin. Ang pagpapatupad ng no_undefined ay nagpapahiwatig na ang runtime linker ay mabubunot sa di-natukoy na mga simbolo. Gayunpaman mayroong hindi bababa sa isang sistema (BeOS) kung saan ang hindi natukoy na mga simbolo sa mga shared library ay normal dahil ang kernel ay nagtatali sa mga ito sa oras ng pagkarga upang piliin kung aling function ang pinaka angkop para sa kasalukuyang arkitektura. I.E. magilas na pumili ng isang angkop na pag-andar ng memset. Tila normal din para sa mga shared library ng HPPA na magkaroon ng mga di-natukoy na simbolo. - walang di-natukoy na bersyon Karaniwan kapag ang isang simbolo ay may di-natukoy na bersyon, ang linker ay hindi papansinin ito. Ang pagpipiliang ito ay hindi pinahihintulutan ang mga simbolo na may di-natukoy na bersyon at isang malalang error ang ibibigay sa halip. --no-warn-mismatch Karaniwanld ay magbibigay ng error kung susubukan mong mag-link nang magkasama ang mga file ng pag-input na hindi tumutugma sa ilang kadahilanan, marahil dahil sila ay naipon para sa iba't ibang mga processor o para sa iba't ibang mga endianness. Sinasabi ng opsyong itold na dapat itong tahimik na pahintulutan ang gayong posibleng mga pagkakamali. Ang pagpipiliang ito ay dapat lamang gamitin nang may pag-aalaga, sa mga kaso kung nakuha mo ang ilang mga espesyal na pagkilos na nagsisiguro na ang mga error sa pag-link ay hindi naaangkop. --no-whole-archive I-off ang epekto ng--whole-archive opsyon para sa kasunod na mga file ng archive. --Nakawalan-exec Panatilihin ang executable file ng output sa tuwing magagamit pa rin ito.Karaniwan, ang linker ay hindi makakagawa ng output file kung nakatagpo ito ng mga error sa panahon ng proseso ng pag-link; lumabas ito nang walang pagsulat ng isang output file kapag ito ay nagbibigay ng anumang error kahit ano pa man. -nostdlib Tanging ang direktoryo ng direktoryo ng paghahanap na malinaw na tinukoy sa command line. Ang mga direktoryo ng library na tinukoy sa mga script ng linker (kabilang ang mga script ng linker na tinukoy sa command line) ay hindi pinansin. --oformat output-format ld maaaring i-configure upang suportahan ang higit sa isang uri ng object file. Kung ang iyongld ay naka-configure sa ganitong paraan, maaari mong gamitin ang--oformat opsyon upang tukuyin ang binary na format para sa output file ng object. Kahit nald ay naka-configure upang suportahan ang mga alternatibong format ng bagay, hindi mo karaniwang kailangan upang tukuyin ito, bilangld Dapat ay isinaayos upang makabuo bilang isang format ng default na output ang pinaka-karaniwang format sa bawat makina. output-format ay isang string ng teksto, ang pangalan ng isang partikular na format na suportado ng mga aklatan ng BFD. (Maaari mong ilista ang magagamit na binary na mga format na mayobjdump -i.) Ang script na utos na "OUTPUT_FORMAT" ay maaari ring tukuyin ang format ng output, ngunit pinapalitan ito ng opsyong ito. -qmagic Ang pagpipiliang ito ay hindi pinansin para sa compatibility ng Linux. -Ay Ang opsyon na ito ay hindi pinansin para sa SVR4 compatibility. --relax Isang opsyon na may epekto sa umaasa sa machine. Ang opsyon na ito ay sinusuportahan lamang sa ilang mga target. Sa ilang mga platform, ang--relax Ang opsyon ay gumaganap ng mga global na pag-optimize na magiging posible kapag ang linker ay nagtatakda ng pagtugon sa programa, tulad ng mga nakakarelaks na mga mode ng address at pagsasama ng mga bagong tagubilin sa output file ng object. Sa ilang mga platform ang mga oras ng pag-link na ito sa mga global na pag-optimize ay maaaring gumawa ng makahulugan na pag-debug ng mga resulta na maaaring maipapatupad na imposible. Ito ay kilala na ang kaso para sa Matsushita MN10200 at MN10300 pamilya ng mga processors. Sa mga platform na kung saan ito ay hindi suportado,--relax ay tinanggap, ngunit hindi pinansin. - Mga Ulat-file-file filename Panatilihin lamang ang mga simbolo na nakalista sa file filename , tinatapon ang lahat ng iba pa. filename ay isang flat file na may isang pangalan ng simbolo bawat linya. Ang pagpipiliang ito ay lalong kapaki-pakinabang sa mga kapaligiran (tulad ng VxWorks) kung saan ang isang malaking pandaigdigang talahanayan ng simbolo ay unti-unti na naipon, upang makatipid ng run-time na memorya. - Mga Ulat-file-file ay hindi itapon ang mga di-natukoy na simbolo, o mga simbolo na kinakailangan para sa mga relocation. Maaari mo lamang tukuyin- Mga Ulat-file-file minsan sa command line. Sinasapawan nito-s at-S. -rpath dir Magdagdag ng isang direktoryo sa runtime library search path. Ginagamit ito kapag nag-uugnay sa isang ELFexecutable sa mga nakabahaging bagay. Lahat-rpath ang mga argumento ay pinagsasama at ipinasa sa link ng runtime, na ginagamit ang mga ito upang hanapin ang mga ibinahaging bagay sa runtime. Ang-rpath Ang pagpipilian ay ginagamit din kapag naghanap ng mga nakabahaging bagay na kinakailangan ng mga ibinahaging bagay na malinaw na kasama sa link; tingnan ang paglalarawan ng-rpath-link pagpipilian. Kung-rpath ay hindi ginagamit kapag nag-uugnay sa isang executable ng ELF, ang mga nilalaman ng variable ng kapaligiran na "LD_RUN_PATH" ay gagamitin kung ito ay tinukoy. Ang-rpath maaari ring gamitin ang opsyon sa SunOS. Bilang default, sa SunOS, ang linker ay bumuo ng isang runtime search patch sa labas ng lahat-L mga pagpipilian na ito ay ibinigay. Kung ang-rpath Ang pagpipiliang ginamit, ang runtime search path ay mabubuo nang eksklusibo gamit ang-rpath mga pagpipilian, hindi papansin ang-Lmga pagpipilian. Maaari itong maging kapaki-pakinabang kapag gumagamit ng gcc, na nagdaragdag ng marami-L mga pagpipilian na maaaring naka-mount sa filesystem ng NFS. Para sa pagiging tugma sa iba pang mga link sa ELF, kung ang-R Ang opsyon ay sinusundan ng isang pangalan ng direktoryo, sa halip na isang pangalan ng file, ito ay itinuturing bilang-rpath pagpipilian. -rpath-link DIR Kapag gumagamit ng ELF o SunOS, ang isang nakabahaging library ay maaaring mangailangan ng isa pa. Nangyayari ito kapag ang link na "ld -shared" ay nagsasama ng isang nakabahaging library bilang isa sa mga input file. Kapag nakatagpo ang linker ng naturang dependency kapag gumagawa ng isang di-shared, non-relocatable na link, ito ay awtomatikong subukan upang mahanap ang kinakailangang shared library at isama ito sa link, kung ito ay hindi kasama nang tahasang. Sa ganitong kaso, ang-rpath-link Tinutukoy ng pagpipilian ang unang hanay ng mga direktoryo upang maghanap. Ang-rpath-link Ang pagpipilian ay maaaring tukuyin ang isang pagkakasunod-sunod ng mga pangalan ng direktoryo alinman sa pamamagitan ng pagtukoy ng isang listahan ng mga pangalan na pinaghihiwalay ng mga colon, o sa pamamagitan ng pagpapakita ng maraming beses. Ang pagpipiliang ito ay dapat gamitin nang may pag-iingat habang pinapalitan nito ang path ng paghahanap na maaaring mahirap naipon sa isang shared library. Sa ganoong kaso posible na gamitin ang hindi sinasadya ng isang iba't ibang mga landas sa paghahanap kaysa sa runtime linker ay gagawin. Ang linker ay gumagamit ng mga sumusunod na path ng paghahanap upang mahanap ang mga kinakailangang shared library. 1. Anumang mga direktoryo na tinukoy ng-rpath-link mga pagpipilian. 2. Anumang mga direktoryo na tinukoy ng-rpath mga pagpipilian. Ang pagkakaiba sa pagitan-rpath at-rpath-link ay ang mga direktoryo na tinukoy ng-rpath Ang mga pagpipilian ay kasama sa maipapatupad at ginagamit sa runtime, samantalang ang-rpath-link Ang pagpipilian ay epektibo lamang sa oras ng pag-link. Ito ay para sa katutubong linker lamang. 3. Sa sistema ng ELF, kung ang-rpath at ang mga pagpipilian sa "rpath-link" ay hindi ginamit, hanapin ang mga nilalaman ng variable ng kapaligiran na "LD_RUN_PATH". Ito ay para sa katutubong linker lamang. 4. Sa SunOS, kung ang-rpath Hindi ginamit ang pagpipilian, maghanap ng anumang mga direktoryo na tinukoy gamit-L mga pagpipilian. 5. Para sa isang native na linker, ang mga nilalaman ng variable ng kapaligiran na "LD_LIBRARY_PATH". 6. Para sa isang katutubong link ng ELF, ang mga direktoryo sa "DT_RUNPATH" o "DT_RPATH" ng isang nakabahaging library ay naghanap ng mga shared library na kinakailangan nito.Ang mga entry na "DT_RPATH" ay hindi pinansin kung umiiral ang mga "DT_RUNPATH". 7. Ang mga default na direktoryo, karaniwan / lib at / usr / lib . 8. Para sa isang katutubong link sa isang sistema ng ELF, kung ang file /etc/ld.so.conf umiiral, ang listahan ng mga direktoryo na natagpuan sa file na iyon. Kung hindi nahanap ang kinakailangang shared library, ang linker ay magbibigay ng babala at magpapatuloy sa link. -shared -Basali Gumawa ng isang nakabahaging library. Ito ay kasalukuyang sinusuportahan lamang sa ELF, XCOFF at SunOS platform. Sa SunOS, ang linker ay awtomatikong lilikha ng isang shared library kung ang-e Ang opsyon ay hindi ginagamit at mayroong mga di-natukoy na simbolo sa link. --sort-common Sinasabi ng opsyong itold upang pagbukud-bukurin ang karaniwang mga simbolo ayon sa laki kapag inilalagay ito sa naaangkop na mga seksyon ng output. Unang dumating ang lahat ng isang byte simbolo, pagkatapos ang lahat ng dalawang byte, pagkatapos ang lahat ng apat na byte, at pagkatapos ang lahat ng iba pa. Ito ay upang maiwasan ang mga puwang sa pagitan ng mga simbolo dahil sa mga hadlang sa pagkakahanay. --split-by-file laki Kapareho ng- Nagtatanggal-by-reloc ngunit lumilikha ng isang bagong seksyon ng output para sa bawat input file kapag laki ay naabot. laki default sa isang sukat ng 1 kung hindi ibinigay. --split-by-reloc bilangin Sinusubukan na lumilikha ng dagdag na mga seksyon sa output file upang walang iisang output na seksyon sa file ay naglalaman ng higit sa bilangin relocations. Ito ay kapaki-pakinabang kapag ang pagbuo ng malaking relocatable file para sa pag-download sa ilang mga real kernels oras sa COFF object format ng file; dahil COFFcannot ay kumakatawan sa higit sa 65535 relocations sa isang solong seksyon. Tandaan na hindi ito gagana sa mga format ng file ng bagay na hindi sumusuporta sa mga seksyon ng di-makatwirang. Ang linker ay hindi hahatiin ang mga indibidwal na mga seksyon ng input para sa muling pamimigay, kaya kung ang isang solong bahagi ng input ay naglalaman ng higit sa bilangin Ang relocation ng isang seksyon ng output ay naglalaman ng maraming mga relocation. bilangin mga default sa isang halaga ng 32768. - istatistika Kumpirmahin at ipakita ang mga istatistika tungkol sa pagpapatakbo ng tagagamit, tulad ng oras ng pagpapatupad at paggamit ng memory. - format na format Para sa ilang mga target, ang output ngld ay naiiba sa ilang mga paraan mula sa output ng ilang umiiral na linker. Ang mga kahilingan sa switch na itold upang gamitin ang tradisyunal na format sa halip. Halimbawa, sa SunOS,ld Pinagsasama ang mga dobleng entry sa simbolo ng talahanayan ng talahanayan. Ito ay maaaring mabawasan ang laki ng isang output file na may ganap na debugging na impormasyon sa pamamagitan ng higit sa 30 porsiyento. Sa kasamaang palad, ang programa ng SunOS "dbx" ay hindi maaaring basahin ang resultang programa ("gdb" ay walang problema). Ang- format na format nagsasabi ang switchld upang hindi pagsamahin ang mga dobleng entry. - Pagsisimula-pagsisimula sectionname = org Hanapin ang isang seksyon sa output file sa absolute address na ibinigay ng org . Maaari mong gamitin ang pagpipiliang ito ng maraming beses hangga't kailangan upang mahanap ang maraming mga seksyon sa command line. org dapat ay isang solong hexadecimal integer; para sa pagiging tugma sa iba pang mga linker, maaari mong alisin ang nangungunang0x kadalasang nauugnay sa mga hexadecimal value. Tandaan: hindi dapat magkaroon ng puting espasyo sa pagitan sectionname , ang katumbas ng pag-sign (``=''), at org . -Tbs org -Tata org -Ttext org Gamitin org bilang panimulang address para --- --- ayon sa "bss", "data", o ang "teksto" na bahagi ng output file. org dapat ay isang solong hexadecimal integer; para sa pagiging tugma sa iba pang mga linker, maaari mong alisin ang nangungunang0x kadalasang nauugnay sa mga hexadecimal value. - Dll-verbose - Sabiose Ipakita ang numero ng bersyon para sald at ilista ang mga tagasuporta ng link na sinusuportahan. Ipakita kung aling mga input file ang maaari at hindi mabubuksan. Ipakita ang script ng linker na ginagamit ng linker. --version-script = bersyon-scriptfile Tukuyin ang pangalan ng isang script ng bersyon sa linker. Karaniwang ginagamit ito kapag lumilikha ng mga nakabahaging mga aklatan upang tukuyin ang karagdagang impormasyon tungkol sa heirarkiya ng bersyon para sa paglikha ng library. Ang opsyon na ito ay makahulugan lamang sa mga platform ng ELF na sumusuporta sa mga shared library. --Walang-karaniwang Magbigay ng babala kapag ang isang pangkaraniwang simbolo ay pinagsama sa isa pang pangkaraniwang simbolo o may kahulugan ng simbolo. Pinapayagan ng mga link ng Unix ang medyo hindi praktikal na kasanayan na ito, ngunit ang mga link sa iba pang mga operating system ay hindi. Ang pagpipiliang ito ay nagpapahintulot sa iyo na makahanap ng mga potensyal na problema sa pagsasama ng mga simbolo ng globo. Sa kasamaang palad, ang ilang mga library ng C ay gumagamit ng praktis na ito, upang makakuha ka ng ilang mga babala tungkol sa mga simbolo sa mga aklatan pati na rin sa iyong mga programa. May tatlong uri ng mga simbolong pandaigdig, na isinalarawan dito sa pamamagitan ng mga halimbawa ng C: int i = 1; Isang kahulugan, na napupunta sa inisyal na seksyon ng data ng output file. extern int i; Isang di-natukoy na sanggunian, na hindi naglalaan ng espasyo. Dapat ay mayroong alinman sa isang kahulugan o isang pangkaraniwang simbolo para sa variable sa isang lugar. int i; Isang pangkaraniwang simbolo. Kung mayroon lamang (isa o higit pa) karaniwang mga simbolo para sa isang variable, napupunta ito sa uninitialized area ng data ng output file. Pinagsasama ng linker ang maraming karaniwang mga simbolo para sa parehong variable sa isang simbolo. Kung ang mga ito ay may iba't ibang laki, pinipili nito ang pinakamalaking sukat. Ang linker ay lumiliko ng isang karaniwang simbolo sa isang deklarasyon, kung mayroong isang kahulugan ng parehong variable. Ang--Walang-karaniwang Ang opsyon ay maaaring gumawa ng limang uri ng mga babala. Ang bawat babala ay binubuo ng isang pares ng mga linya: unang inilalarawan ang simbolo na nakatagpo lamang, at ikalawang naglalarawan ng nakaraang simbolo na nakatagpo ng parehong pangalan. Ang isa o pareho ng dalawang simbolo ay magiging pangkaraniwang simbolo. 1. Ang pagbabagong pangkaraniwang simbolo, dahil mayroon nang kahulugan para sa simbolo. (): babala: karaniwan ng `'na-override sa pamamagitan ng kahulugan (): babala: tinukoy dito2. Ang pagbukas ng pangkaraniwang simbolo sa isang sanggunian, sapagkat naranasan ang ibang kahulugan para sa simbolo. Ito ay katulad ng nakaraang kaso, maliban na ang mga simbolo ay nakatagpo sa ibang pagkakasunud-sunod. (): babala: kahulugan ng `'napakahalaga (): babala: karaniwan ay narito3. Pagsasama ng pangkaraniwang simbolo na may nakaraang karaniwang laki na simbolo. (): babala: maraming karaniwang ng `' (): babala: ang nakaraang karaniwang naririto4. Pagsasama ng pangkaraniwang simbolo na may nakaraang mas malaking karaniwang simbolo. (): babala: karaniwan ng `'na-override ng mas malaking karaniwan (): babala: mas malaki ang karaniwang naririto5. Pagsasama ng pangkaraniwang simbolo na may nakaraang mas maliliit na simbolo. Ito ay katulad ng nakaraang kaso, maliban na ang mga simbolo ay nakatagpo sa ibang pagkakasunud-sunod. (): babala: karaniwan ng `'napakalaki ng karaniwan (): babala: mas maliit ang karaniwang naririto--Warn-constructor Warn kung may anumang global na constructor ay ginagamit. Kapaki-pakinabang lamang ito para sa ilang mga format ng file ng bagay. Para sa mga format tulad ng COFF o ELF, ang linker ay hindi maaaring makita ang paggamit ng mga global na konstruktor. --warn-multiple-gp Warn kung maraming mga global pointer values ang kinakailangan sa output file. Ito ay mahalaga lamang para sa ilang mga processor, tulad ng Alpha. Sa partikular, ang ilang mga processor ay naglalagay ng malaking halaga ng mga constants sa isang espesyal na seksyon. Ang isang espesyal na rehistro (ang pandaigdigang pointer) ay tumuturo sa gitna ng seksyon na ito, upang ang mga constants ay maaaring mabasa nang mahusay sa pamamagitan ng isang rehistradong mode ng rehistrasyon na may kaugnayan sa base. Dahil ang offset sa base-rehistro na kamag-anak mode ay naayos at medyo maliit (hal., 16 bits), ito ay naglilimita sa maximum na laki ng pare-pareho ang pool. Kaya, sa mga malalaking programa, madalas na kinakailangan upang gumamit ng maramihang mga halaga ng global pointer upang ma-address ang lahat ng posibleng mga constants. Ang pagpipiliang ito ay nagiging sanhi ng isang babala na ibibigay tuwing nangyayari ang kasong ito. - Wag kang-minsan Lamang balaan kaagad para sa bawat di-natukoy na simbolo, sa halip na isang beses bawat module na tumutukoy dito. - Alerto-seksyon-align Warn kung ang address ng isang seksyon ng output ay nabago dahil sa pagkakahanay. Karaniwan, ang pag-align ay itatakda ng isang seksyon ng input. Ang address ay babaguhin lamang kung hindi ito malinaw na tinukoy; ibig sabihin, kung ang utos ng "SEKSYON" ay hindi tumutukoy sa isang pagsisimula ng address para sa seksyon. --whole-arch