Skip to main content

Kaikki Linux / Unix-komennosta: ld

How to Install Composer - Explained (Saattaa 2025)

How to Install Composer - Explained (Saattaa 2025)
Anonim

NIMI

ld - LD: n käyttäminen, GNU-linkki

SYNOPSIS

ld vaihtoehtoja objfile …

KUVAUS

LD yhdistää useita objekti- ja arkistotiedostoja, siirtää datansa ja sitoo symbolin viitteitä. Tavallisesti ohjelman viimeisen vaiheen laatiminen on käynnissäLD.

LD hyväksyy Linkter Command Language -tiedostot, jotka on kirjoitettu AT & T: n Link Editor Command Language -syntaksin yläosassa, jotta yhdistäminen on mahdollista nimenomaan ja kokonaisvaltaisesti.

Tämä man-sivu ei kuvaa komentokieltä; katsoLD merkintä "info" tai manuaalinen ld: GNU-linkki, joka sisältää täydelliset tiedot komentokielestä ja muista GNU-linkkereistä.

Tämä versioLD käyttää yleiskäyttöisiä BFD-kirjastoja toimimaan objektitiedostoissa. Tämä mahdollistaaLD lukea, yhdistää ja kirjoittaa objektitiedostoja useissa eri muodoissa --- esimerkiksi COFF tai "a.out". Eri formaatteja voidaan liittää yhteen minkä tahansa käytettävissä olevan objektiedoston tuottamiseksi.

Sen joustavuuden lisäksi GNU-linkki on hyödyllisempi kuin muut linkit tarjoavat diagnostisia tietoja. Monet linkerit hylkäävät suorituksen välittömästi virheen kohdalla; aina kun mahdollista,LD jatkaa suorittamista, jolloin voit tunnistaa muita virheitä (tai joissakin tapauksissa saada tulostustiedosto virheestä huolimatta).

GNU-linkkiLD on tarkoitus kattaa laaja valikoima tilanteita ja olla mahdollisimman yhteensopiva muiden linkkereiden kanssa. Tämän seurauksena sinulla on monia valintoja sen käyttäytymisen hallitsemiseksi.

VAIHTOEHDOT

Linkkikanta tukee lukuisia komentorivivalintoja, mutta varsinaisessa käytännössä niitä harvoin käytetään missä tahansa erityisessä kontekstissa. EsimerkiksiLD on yhdistää standardi Unix -objektitiedostoja vakiomuotoiseen, tuettuun Unix-järjestelmään. Tällaisessa järjestelmässä tiedoston linkittäminen "hello.o":

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

Tämä kertooLD tuottaa tiedoston nimeltä ulostulo tiedoston "/lib/crt0.o" linkityksen seurauksena "hello.o" ja kirjastosta "libc.a", jotka tulevat tavallisista hakuhakemistoista. (Katso keskustelua-l alla.)

Jotkut komentorivin vaihtoehdoista kohteeseenLD voidaan määrittää komentorivin missä tahansa kohdassa. Kuitenkin vaihtoehtoja, jotka viittaavat tiedostoihin, kuten-l tai-T, aiheuttaa sen, että tiedosto luetaan siinä pisteessä, jossa vaihtoehto näkyy komentorivillä, suhteessa objektitiedostoihin ja muihin tiedostoasetuksiin. Jos ei-tiedoston vaihtoehdoilla toisella argumentilla on toista vaihetta, sillä ei ole enää vaikutusta tai ohittaa kyseisen vaihtoehdon aikaisemmat esiintymät (jotka ovat vasemmalla komentorivillä). Alla olevissa kuvauksissa on lueteltu vaihtoehtoja, jotka voidaan määritellä mielekkäästi useammin kuin kerran.

Muut vaihtoehdot ovat objektiedostoja tai arkistoja, jotka on yhdistettävä toisiinsa. Ne voivat seurata, edeltää tai sekoittaa komentorivivalintoihin paitsi, että objektitiedosto-argumenttia ei voi sijoittaa vaihtoehdon ja sen argumentin väliin.

Yleensä linkkeriä kutsutaan vähintään yhdellä objektitiedostolla, mutta voit määrittää muitakin binaaritiedostojen muotoja käyttäen-l, R, ja komentosarjan komentokieli. Jos ei binääritulotiedostot ovat lainkaan määritettyjä, linkkeri ei tuota tuottoa ja antaa viestinEi syötetiedostoja.

Jos linkkeri ei tunnista objektitiedoston muotoa, se olettaa, että se on linkkikoodi. Tällä tavalla määritetty komentosarja lisää linkin yhteydessä käytettävän linkin pääkriptin (joko oletussynkronointikirjoitus tai-T). Tämä ominaisuus sallii linkittäjän linkityksen tiedostoon, joka näyttää objektilta tai arkistosta, mutta itse asiassa vain määrittelee joitain symboliarvoja tai käyttää muita "INPUT" - tai "GROUP" -merkkejä muiden kohteiden lataamiseen. Huomaa, että käsikirjoituksen määrittäminen tällä tavalla vain lisää pääliitinkäsikirjoitusta; Käytä-T vaihtoehto vaihtaa oletuslinkkakirjaskriptin kokonaan.

Vaihtoehtojen, joiden nimet ovat yksi kirjain, vaihtoehtoisten argumenttien on joko noudatettava optiokirjainta puuttumatta välilyönteihin tai annettava erillisinä argumentteina välittömästi sen edellyttämän vaihtoehdon jälkeen.

Vaihtoehdoista, joiden nimet ovat useampia kirjaimia, joko yksi tai kaksi viivaa voi edeltää vaihtoehtoa; esimerkiksi,-trace-symboli ja--trace-symboli ovat vastaavia. Huomaa - tässä säännössä on yksi poikkeus. Useita kirjainvaihtoehtoja, jotka alkavat pienellä kirjaimella "o", voidaan edetä vain kahdella viivalla. Tämä on vähentää sekaannusta-o vaihtoehto. Joten esimerkiksi-omagic asettaa tulostustiedoston nimentaika- taas--omagic asettaa NMAGIC-lipun lähtöön.

Useita kirjaimia koskevat argumentit on joko erotettava vaihtoehtoisesta nimestä tasa-arvoisella merkillä tai annettava erillisinä argumentteina välittömästi sen jälkeen, kun niitä vaaditaan. Esimerkiksi,--trace-symbol foo ja--trace-symboli = foo ovat vastaavia. Monimerkkisten vaihtoehtojen nimet lyhenevät.

Huomaa - jos linkkeriä kutsutaan epäsuorasti kääntäjän ohjaimen (esimGCC), kaikki linkkikomentorivin vaihtoehtojen pitäisi olla etuliitteenä-Wl, (tai mikä tahansa sopiva erityisesti kääntäjäohjaimelle) näin:

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

Tämä on tärkeää, koska muussa tapauksessa kääntäjäohjainohjelma voi hiljaa pudottaa linkkiasetukset, mikä johtaa huonoon linkkiin.

Tässä on GNU-linkkeri hyväksytty yleisten komentorivivalitsimien taulukko:

-a avainsana

Tämä vaihtoehto tukee HP / UX-yhteensopivuutta. avainsana argumentin on oltava yksi merkkijonoistaarkisto, yhteinen, taioletusarvo. -aarchive on toiminnallisesti sama kuin-Bstatic, ja kaksi muuta avainsanaa ovat toiminnallisesti samanarvoisia-Bdynamic. Tätä vaihtoehtoa voidaan käyttää useita kertoja.

-A arkkitehtuuri

--architecture = arkkitehtuuri

Nykyisessä julkaisussaLD, tämä vaihtoehto on hyödyllinen vain Intel 960 -arkkitehtuureille. SiinäLD kokoonpano, arkkitehtuuri argumentti yksilöi tietyn arkkitehtuurin 960-perheessä, mahdollistaa joitain suojatoimenpiteitä ja muuttaa arkistokirjaston hakupolkua.

Tulevat julkaisutLD voi tukea samankaltaisia ​​toimintoja muille arkkitehtuuriperheille.

-b panos-muoto

--format = panos-muoto

LD voidaan konfiguroida tukemaan useampaa kuin yhtä erilaista objektitiedostoa. Jos sinunLD on määritetty tällä tavalla, voit käyttää-b -vaihtoehto, joka määrittää binääriformaatin syöttöobjektitiedostoille, jotka seuraavat tätä vaihtoehtoa komentoriviltä. VaikkaLD on määritetty tukemaan vaihtoehtoisia esitysmuotoja, sinun ei tarvitse yleensä määrittää tätä, kutenLD pitäisi olla määritetty oletettavaksi oletustulostusmuodoksi, joka on tavallisin formaatti kussakin koneessa. panos-muoto on tekstijono, BFD-kirjastojen tukema tietyn muoto. (Voit luetella käytettävissä olevat binäärimuodotobjdump -i.)

Voit halutessasi käyttää tätä vaihtoehtoa, jos linkit tiedostoihin epätavallisella binäärimuodolla. Voit myös käyttää-b vaihtaa formaatteja nimenomaisesti (kun yhdistät eri tiedostomuotoja esiteltyjä tiedostoja), mukaan lukien-b panos-muoto ennen jokaista objektitiedostojen ryhmää tietyssä muodossa.

Oletusmuoto otetaan ympäristömuuttujasta "GNUTARGET".

Voit myös määrittää syöteformaatin käsikirjoituksesta käyttämällä komentoa "TARGET";

-C MRI-commandfile

--mri-script = MRI-commandfile

Yhteensopivuutta MRI: n tuottamien linkkereiden kanssa,LD hyväksyy komentorivit, jotka on kirjoitettu vaihtoehtoiseen, rajoitettuun komentokieliin, joka on kuvattu GNU ld -dokumentaation MRI-yhteensopivissa komentotiedostoissa. Esittele MRI-komentotiedostot sisältävä vaihtoehto-C; Käytä-T vaihtoehto käyttää yleiskäyttöön kirjoitettuja linkkikirjoituksiaLD kirjoituskieli. Jos MRI-cmdfile ei ole olemassa,LDetsii sitä minkä tahansa määrittelemissä hakemistoissaL vaihtoehtoja.

-D

-DC

-DP

Nämä kolme vaihtoehtoa ovat vastaavia; useita lomakkeita tuetaan yhteensopivuuden muiden linkkereiden kanssa. Ne antavat tilaa tavallisille symboleille, vaikka uudelleensijoitettava ulostulostiedosto on määritetty (-r). Komentosarjalla "FORCE_COMMON_ALLOCATION" on sama vaikutus.

-e merkintä

--entry = merkintä

Käyttää merkintä kuten nimenomainen symboli ohjelman alkuunpanon suorittamiseen eikä oletusarvon syöttökohtaa. Jos nimimerkkiä ei ole merkintä , linkki yrittää jäsentää merkintä numerona ja käytä sitä merkintäosoitteena (numero tulkitaan perustana 10, voit käyttää johtavaa0x pohjaan 16 tai johtavaan0 perusta 8).

-E

--export dynaaminen

Kun luot dynaamisesti linkitetyn suoritustiedoston, lisää kaikki symbolit dynaamiseen symbolitietokantaan. Dynaaminen symbolitaulukko on symbolien joukko, joka näkyy dynaamisissa objekteissa ajon aikana.

Jos et käytä tätä vaihtoehtoa, dynaaminen symbolitietue sisältää yleensä vain ne symbolit, joihin joku linkissä mainittu dynaaminen objekti viittaa.

Jos käytät "dlopen" -ohjelmaa dynaamisen objektin lataamisessa, jonka täytyy viitata ohjelman määrittelemien symboleiden sijaan johonkin muuhun dynaamiseen objektiin, sinun on luultavasti käytettävä tätä vaihtoehtoa yhdistettäessä itse ohjelmaa.

Voit myös käyttää versiokäsikirjoitusta hallitsemaan, mitä symbolia olisi lisättävä dynaamiseen symbolitietokantaan, jos tulostusmuoto tukee sitä. Katso kuvausVersion-skripti in @ ref {VERSION}.

-EB

Linkki big-endian kohteisiin. Tämä vaikuttaa oletustulostusmuotoon.

-EL

Linkitä vähän endian-esineitä. Tämä vaikuttaa oletustulostusmuotoon.

-f

--auxiliary nimi

Kun luot ELF-jaetun objektin, aseta sisäinen DT_AUXILIARY-kenttä määritettyyn nimeen. Tämä kertoo dynaamisesta linkkeriä, että jaetun objektin symbolitaulukkoa tulisi käyttää apurisuodattimeksi jaetun objektin symbolitaulukossa nimi .

Jos myöhemmin linkität ohjelman tämän suodatusobjektin kanssa, silloin, kun suoritat ohjelman, dynaaminen linkki näkee DT_AUXILIARY-kentän. Jos dynaaminen linkki ratkaisee minkä tahansa symbolin suodatinobjektista, se tarkistaa ensin onko määritetty määritelmä jaettu objekti nimi . Jos on olemassa yksi, sitä käytetään suodatusobjektin määritelmän sijaan. Jaettu objekti nimi ei tarvitse olla olemassa. Näin jaettu kohde nimi voidaan käyttää tiettyjen toimintojen vaihtoehtoiseen toteutukseen, mahdollisesti virheiden suorittamiseen tai konekohtaiseen suorituskykyyn.

Tämä vaihtoehto voidaan määrittää useammin kuin kerran. DT_AUXILIARY-merkinnät luodaan järjestyksessä, jossa ne näkyvät komentorivillä.

-F nimi

--suodattaa nimi

Kun luot ELF-jaetun objektin, aseta sisäinen DT_FILTER-kenttä määritettyyn nimeen. Tämä kertoo dynaamisen linkkeriä, että luodun jaetun objektin symbolitaulukko on käytettävä suodattimena jaetun objektin symbolitaulukossa nimi .

Jos myöhemmin linkit ohjelmaan tätä suodatusobjektia vastaan, silloin, kun suoritat ohjelman, dynaaminen linkki näkee DT_FILTER-kentän. Dynaaminen linkki ratkaisee symbolit suodatusobjektin symbolitaulukon mukaan tavalliseen tapaan, mutta se liittää tosiasiallisesti yhteiseen objekttiin sisältyviin määritelmiin nimi . Näin suodatinobjektia voidaan käyttää valitsemaan objektin tarjoamien symbolien osajoukko nimi .

Jotkut vanhat linkerit käyttivät sitä-F -vaihtoehto koko kokoustyökalupaneelissa objektitiedostomuodon määrittämiseksi sekä tulo- että lähtöobjekti-tiedostoille. GNU-linkki käyttää tähän tarkoitukseen muita mekanismeja:-b, --muoto, --oformat vaihtoehtoja, linkkikoodeissa "TARGET" -komento ja GNUTARGET-ympäristömuuttuja. GNU-linkki jättää huomiotta-F vaihtoehtoa, kun et luota ELF-jaettua objektia.

-fini nimi

Kun luot ELF-suoritustiedoston tai jaetun objektin, soita NAME, kun suoritettava tai jaettu kohde on purettu, asettamalla DT_FINI toiminnon osoitteeseen. Oletusarvoisesti linkkeri käyttää kutsun "_fini" -toimintoa.

-g

Huomiotta. Edellyttää yhteensopivuutta muiden työkalujen kanssa.

-G arvo

--gpsize = arvo

Aseta GP-rekisteriin optimoidut objektit maksimikokoon koko . Tämä on vain merkityksellistä esineiden tiedostomuodoille kuten MIPS ECOFF, joka tukee suurien ja pienten esineiden sijoittamista eri osioihin. Tätä ei oteta huomioon muiden objektien tiedostomuodoissa.

-h nimi

-soname = nimi

Kun luot ELF-jaetun objektin, aseta sisäinen DT_SONAME -kenttä määritettyyn nimeen. Kun suoritustiedosto on yhdistetty jaettuun kohteeseen, jolla on DT_SONAME-kenttä, silloin kun suoritustiedostoa ajetaan, dynaaminen linkki yrittää ladata DT_SONAME-kentän määrittämän jaetun objektin sen sijaan, että käytät linkkeriin annettua tiedostonimeä.

-i

Suorita inkrementaalinen linkki (sama kuin vaihtoehto-r).

-sen sisällä nimi

Kun luot ELF-suoritustiedoston tai jaetun objektin, soita NAME, kun suoritettava tai jaettu kohde on ladattu, asettamalla DT_INIT toiminnon osoitteeseen. Oletusarvoisesti linkkeri käyttää kutsutaan "_init".

-l arkisto

--library = arkisto

Lisää arkistotiedosto arkisto linkki tiedostoihin. Tätä vaihtoehtoa voidaan käyttää useita kertoja.LD etsii sen polku-listan "libarchive.a" -tapahtumien osalta jokaiselle arkisto määritetty.

Järjestelmissä, jotka tukevat jaettuja kirjastoja,LD voi myös etsiä kirjastoja, joissa on laajennuksia kuin ".a". Erityisesti ELF- ja SunOS-järjestelmissä,LD hakee hakemistoa kirjastolle, jossa on ".so" -laajennus, ennen kuin haet sellaista, jolla on ".a" -laajennus. Yleensä ".so" -alku osoittaa yhteistä kirjastoa.

Linkki etsii arkiston vain kerran, sijainnissa, jossa se on määritetty komentoriville. Jos arkisto määrittää symbolin, joka oli määrittelemätön joissakin esineissä, jotka ilmestyivät komentorivin arkistoon, linkkeri sisältää asianmukaiset tiedostot arkistosta. Kuitenkin määrittelemätön symboli objektissa, joka ilmestyy myöhemmin komentoriville, ei aiheuta linkkeri etsiä arkistoa uudelleen.

Katso-( vaihtoehto keinon pakottaa linkki etsiä arkistoja useita kertoja.

Voit luetella saman arkiston useita kertoja komentoriviltä.

Tämä arkistotyön haku on standardi Unix-linkkereille. Jos kuitenkin käytätLD onAIX, huomata, että se eroaa AIX-linkkeri käyttäytymisestä.

L searchdir

--library-polku = searchdir

Lisää polku searchdir luetteloon poluista, jotkaLD etsii arkistokirjastoja jaLD ohjauskriptit. Voit käyttää tätä vaihtoehtoa useita kertoja. Hakemistoja etsitään siinä järjestyksessä kuin ne on määritetty komentorivillä. Komentorivillä määritetyt hakemistot etsitään ennen oletushakemistoja. KaikkiL vaihtoehdot koskevat kaikkia-l vaihtoehtoja, riippumatta siitä, missä järjestyksessä optiot näkyvät.

Jos searchdir alkaa "=", sitten "=" korvataan nimellä sysroot-etuliite , määritetty polku, kun linkkeri on määritetty.

Oletusjoukko etsittyjä polkuja (ilman määritettyäL) riippuu siitä, mikä emulointitilaLD käyttää ja joissakin tapauksissa myös sitä, miten se on määritetty.

Reitit voidaan myös määrittää linkkikoodilla, jossa on "SEARCH_DIR" -komento. Tällä tavoin määritetyt hakemistot etsitään siinä kohdassa, missä linkkikoodi näkyy komentorivillä.

-m jäljittely

Emuloi jäljittely linkkeri. Voit luetella käytettävissä olevat emulaatiotverbose taiVvaihtoehtoja.

Jos-m vaihtoehtoa ei käytetä, emulointi otetaan LDEMULATION-ympäristömuuttujasta, jos se on määritelty.

Muuten oletusemulointi riippuu linkkeriasetuksen määrittämisestä.

-M

--print-kartta

Tulosta linkkikartta vakiotulokseen. Linkkikartta antaa tietoja linkistä, mukaan lukien seuraavat:

*

Jos objektitiedostot ja -symbolit kartoitetaan muistiin.

*

Kuinka yleiset symbolit kohdennetaan.

*

Kaikki linkin sisältämät arkistoon kuuluvat jäsenet, joissa mainitaan arkistossa olevan jäsenen tuominen symboli.

-n

--nmagic

Katkaise sivukohdistuksen kohdat ja merkitse ulostulo "NMAGIC", jos mahdollista.

-N

--omagic

Aseta tekstin ja datan osat lukemaan ja kirjoittamaan. Älä myöskään liitä sivusuuntaista tietosegmenttiä ja estä linkittämistä jaettuja kirjastoja vastaan. Jos tulostusmuoto tukee Unix-tyyppisiä taikuusnumeroita, merkitse ulostulo "OMAGIC".

--no-omagic

Tämä vaihtoehto hylkää suurimman osan-N vaihtoehto. Se asettaa tekstiosion vain luettavaksi ja pakottaa datasegmentin olevan sivusuuntautunut. Huomaa - tämä vaihtoehto ei salli yhdistää jaettuja kirjastoja. Käyttää-Bdynamic tätä varten.

-o ulostulo

--output = ulostulo

Käyttää ulostulo kuten ohjelman tuottaman ohjelman nimiLD; jos tätä vaihtoehtoa ei ole määritetty, nimi a.out käytetään oletuksena. Komentotiedoston "OUTPUT" voi myös määrittää tulostetiedoston nimen.

-O taso

Jos taso on numeerisia arvoja suurempi kuin nollaLD optimoi tuotoksen. Tämä saattaa kestää huomattavasti kauemmin, joten sen pitäisi todennäköisesti olla käytössä vain lopullisessa binaarissa.

-q

--emit-relocs

Jätä siirrettävät osat ja sisällöt täysin kytkettyihin exececutable-laitteisiin. Lähetyslinkin analyysi- ja optimointityökalut voivat tarvita näitä tietoja, jotta voidaan suorittaa oikeita muutoksia suoritettaviin tiedostoihin. Tämä johtaa suurempaan suoritettavaan tiedostoon.

Tätä vaihtoehtoa tuetaan tällä hetkellä vain ELF-alustoilla.

-r

--relocateable

Luo uudelleensijoitettava ulostulo --- eli tuottaa tulostustiedoston, joka puolestaan ​​voi toimia tulonaLD. Tätä kutsutaan usein osittainen yhdistäminen . Sivuvaikutuksena Unixin taitolukuja tukevissa ympäristöissä tämä vaihtoehto asettaa myös lähtötiedoston taika-arvon "OMAGIC". Jos tätä asetusta ei ole määritetty, tuotetaan absoluuttinen tiedosto. Kun linkität C ++ -ohjelmat, tämä vaihtoehto ei ratkaista viittaukset rakentajiin; tehdä niin, käytä-Ur.

Kun syöttötiedostona ei ole samaa formaattia kuin tulostustiedosto, osittainen linkitys tuetaan vain, jos kyseisellä syöttötiedostolla ei ole siirtoja. Erilaisilla tulostusmuodoilla voi olla muita rajoituksia; esimerkiksi jotkut "a.out" -pohjaiset muodot eivät tue osittaista linkittämistä muiden formaattien syöttötiedostoihin lainkaan.

Tämä vaihtoehto on sama kuin-i.

R Tiedoston nimi

--just-symbolit = Tiedoston nimi

Lue symbolien nimet ja niiden osoitteet osoitteesta Tiedoston nimi , mutta älä siirrä sitä uudelleen tai lisää se tulostimeen. Tämä sallii sinun lähdetiedoston viittaavan symbolisesti absoluuttisiin muistipaikkoihin muissa ohjelmissa. Voit käyttää tätä vaihtoehtoa useammin kuin kerran.

Yhteensopivuus muiden ELF - linkkien kanssa, josR vaihtoehtoa seuraa hakemiston nimi, eikä tiedostonimi, sitä käsitellään nimellä-rpath vaihtoehto.

-S

--strip-all

Poistetaan kaikki symbolitiedot lähtötiedostosta.

-S

--strip-debug

Poista virheenkorjaussymbolin tiedot (mutta ei kaikki symbolit) tulostustiedostosta.

-t

--jäljittää

Tulosta syöttötiedostojen nimet nimelläLD käsittelee ne.

-T Komentosarjatiedoston

--script = Komentosarjatiedoston

Käyttää Komentosarjatiedoston kuten linkkikirjoitus. Tämä kirjoitus korvaaLD's oletus linkkeri käsikirjoitus (eikä lisätä sitä), niin commandfile on määritettävä kaikki, mitä tarvitaan tulostiedoston kuvaamiseen. Jos Komentosarjatiedoston ei ole nykyisessä hakemistossa, "ld" etsii sitä edellämainittujen hakemistojen kohdallaL vaihtoehtoja. moninkertainen-T vaihtoehdot kertyvät.

-u symboli

--undefined = symboli

Pakottaa symboli syötetään tulostustiedostoon määrittelemättömänä symbolina. Näin voi esimerkiksi käynnistää ylimääräisten moduulien yhdistäminen tavallisiin kirjastoihin.-u voidaan toistaa useilla vaihtoehtoisilla argumentteilla lisäämään lisää määrittelemättömiä symboleja. Tämä vaihtoehto vastaa "EXTERN" linkkikirjoituskomentoa.

-Ur

Kaikki muut kuin C ++ -ohjelmat, tämä vaihtoehto vastaa-r: se tuottaa siirrettävän ulostulon - ts. tulostiedoston, joka puolestaan ​​voi toimia tulonaLD. Kun yhdistät C ++ -ohjelmia,-Ur tekee ratkaista viittaukset konstruktoreihin toisin kuin-r. Se ei toimi käytettäessä-Ur tiedostoihin, jotka olivat itse yhteydessä toisiinsa-Ur; kun konstruktion taulukko on rakennettu, sitä ei voi lisätä. Käyttää-Ur vain viimeisestä osittaisesta linkistä, ja-r muille.

--unique = OSA

Luo erillisen ulostulo-osan kullekin syöttöosion osalle OSA , tai jos valinnainen jokerimerkki OSA argumentti puuttuu jokaiselle orvoille. Harvinaisluku on sellainen, jota ei ole erikseen mainittu linkkikirjoitusohjelmassa. Voit käyttää tätä vaihtoehtoa useita kertoja komentorivillä. Se estää syöttöosien normaalin yhdistämisen samalta nimeltään, mikä ohjaa linkkikirjoitusosion pääteosionäytteitä.

-v

--versio

V

Näytä versionumeroLD.V vaihtoehto myös luetellaan tuetut emulaatiot.

-x

--discard-all

Poista kaikki paikalliset symbolit.

X

--discard-paikalliset

Poista kaikki väliaikaiset paikalliset symbolit. Useimmille kohteille tämä on kaikki paikalliset symbolit, joiden nimet alkavatL.

-y symboli

--trace-symboli = symboli

Tulosta kunkin linkitetyn tiedoston nimi, johon symboli näkyviin. Tätä vaihtoehtoa voidaan antaa useita kertoja. Monissa järjestelmissä on tarpeen esitellä alaviiva.

Tämä vaihtoehto on hyödyllinen, kun linkissä on määrittelemätön symboli, mutta et tiedä mistä viittaus on peräisin.

Y polku

Lisätä polku oletus kirjaston hakupolulle. Tämä vaihtoehto on olemassa Solaris-yhteensopivuudelle.

-z avainsana

Tunnetut avainsanat ovat "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "nyt", "alkuperät", "combreloc", "nocombreloc" ja "nocopyreloc ". Muut avainsanat jätetään huomiotta Solaris-yhteensopivuudelle. "initfirst" merkitsee objektin, joka alustetaan ensimmäisellä aikavälillä ennen muita kohteita."interpose" merkitsee objektia, jonka symboli taulukko seisoo ennen kaikkia symboleita, mutta ensisijainen suoritettava. "loadfltr" tarkoittaa objektia, että sen filtees käsitellään välittömästi ajon aikana. "nodefaultlib" merkitsee objektia, jonka tämän kohteen riippuvuuksien haku jättää huomiotta mikä tahansa oletushakemiston hakupolku. "nodelete" tarkoittaa, että objektia ei saa purkaa ajon aikana. "nodlopen" merkitsee objektia, jota ei ole saatavilla "dlopen". "nodump" merkitsee sitä, että objektia ei voida "dldump" -tiedostoon. "nyt" merkitsee objektin ei-laiska runtime-sitomalla. "alkuperää" merkitsee, että kohde voi sisältää $ ORIGIN. "defs" estää määrittelemättömät symbolit. "muldefs" sallii useita määritelmiä. "combreloc" yhdistää useita reloc-osioita ja lajittelee ne dynaamisten symbolien haun välimuistiin.

"nocombreloc" estää useiden reloc-osien yhdistämisen. "nocopyreloc" poistaa kopiolähettimien tuottamisen.

-( arkisto -)

--start-ryhmä arkisto --end-ryhmä

arkisto pitäisi olla luettelo arkistoista. Ne voivat olla joko nimenomaisia ​​tiedostonimiä tai-lvaihtoehtoja.

Määritettyjä arkistoja etsitään toistuvasti, kunnes uusia, määrittelemättömiä viitteitä ei luoda. Tavallisesti arkistoa etsitään vain kerran siinä järjestyksessä kuin se on määritetty komentoriville. Jos arkistossa oleva symboli tarvitaan ratkaisemaan määrittelemätön symboli, jonka kohde viittaa arkistossa, joka näkyy myöhemmin komentorivillä, linkki ei pysty ratkaisemaan viittausta. Ryhmittämällä arkistot etsitään niitä toistuvasti, kunnes kaikki mahdolliset viittaukset ratkaistaan.

Tämän vaihtoehdon käytöllä on huomattavat suorituskykykustannukset. On parasta käyttää sitä vain, jos kahden tai useamman arkiston välillä on väistämättömiä pyöreitä viittauksia.

--accept-tuntematon-panos-kaari

--no Hyväksy-tuntematon-panos-kaari

Kertoo linkkeri hyväksyy syöttötiedostot, joiden arkkitehtuuria ei tunnisteta. Oletus on se, että käyttäjä tietää, mitä he tekevät ja aikoo tahallaan linkittää näihin tuntemattomiin syöttötiedostoihin. Tämä oli linkittäjän oletuskäyttäytyminen ennen versiota 2.14. Oletusarvoinen käyttäytyminen julkaisusta 2.14 alkaen on hylätä tällaiset syöttötiedostot ja niin--accept-tuntematon-panos-kaari vaihtoehto on lisätty vanhan käyttäytymisen palauttamiseksi.

-assert avainsana

Tätä vaihtoehtoa ei oteta huomioon SunOS-yhteensopivuudesta.

-Bdynamic

-dy

-call_shared

Linkki dynaamisiin kirjastoihin. Tämä on vain merkityksellistä alustoille, joilla jaettuja kirjastoja tuetaan. Tämä vaihtoehto on yleensä oletus tällaisilla alustoilla. Tämän vaihtoehdon vaihtoehdot ovat yhteensopivia eri järjestelmien kanssa. Voit käyttää tätä vaihtoehtoa useita kertoja komentorivillä: se vaikuttaa kirjaston etsintään-l jotka seuraavat sitä.

-Bgroup

Aseta DF_1_GROUP-lippu dynaamisessa osiossa "DT_FLAGS_1". Tämä aiheuttaa runtime linkkeriä käsittelemään hakuja tässä objektissa ja sen riippuvuudet suoritetaan vain ryhmän sisällä.--no-määrittelemätön on oletettu. Tämä vaihtoehto on vain merkityksellinen ELF-alustoilla, jotka tukevat jaettuja kirjastoja.

-Bstatic

DN

-non_shared

-staattinen

Älä liitä jaettuja kirjastoja. Tämä on vain merkityksellistä alustoille, joilla jaettuja kirjastoja tuetaan. Tämän vaihtoehdon vaihtoehdot ovat yhteensopivia eri järjestelmien kanssa. Voit käyttää tätä vaihtoehtoa useita kertoja komentorivillä: se vaikuttaa kirjaston etsintään-l jotka seuraavat sitä.

-Bsymbolic

Luodessasi jaettua kirjastoa, sitouduta viittauksia maailmanlaajuisiin symboleihin määritetyn haun mukaan jaetussa kirjastossa. Yleensä on mahdollista, että jokin ohjelma, joka on yhdistetty jaettuun kirjastoon, ohittaa määrityksen jaetun kirjaston sisällä. Tämä vaihtoehto on vain merkityksellinen ELF-tukijärjestelmissä, jotka tukevat jaettuja kirjastoja.

--check-osat

--no-check-osat

Pyytää linkittäjää ei tarkistaa leikkauksen osoitteet sen jälkeen, kun ne on osoitettu, onko päällekkäisyydet. Normaalisti linkki suorittaa tämän tarkistuksen, ja jos se löytää päällekkäisyydet, se tuottaa sopivat virheilmoitukset. Linkki ei tiedä ja tekee päästöoikeuksien osia päällysmerkinnöissä. Oletuskäyttäytyminen voidaan palauttaa komentorivikytkimellä--check-osat.

--cref

Luo ristiviittaustaulukko. Jos linkkikarttatiedostoa luodaan, ristiviittaustaulukko tulostetaan karttatiedostoon. Muussa tapauksessa se tulostetaan vakiotulosteeseen.

Taulukon muoto on tarkoituksellisesti yksinkertainen, jotta se voidaan helposti käsitellä käsikirjoituksella tarvittaessa. Symbolit tulostetaan, lajitellaan nimen mukaan. Jokaisesta symbolista annetaan tiedostonimiä koskeva luettelo. Jos symboli on määritetty, ensimmäinen lueteltu tiedosto on määritelmän sijainti. Jäljellä olevat tiedostot sisältävät viittauksia symboliin.

--no määritellä-common

Tämä vaihtoehto estää osoitinten osoittamisen yleisiin symboleihin. Komentosarjalla "INHIBIT_COMMON_ALLOCATION" on sama vaikutus.

--no määritellä-common -vaihtoehto mahdollistaa päätöksen irrottamisen siitä, että osoitteet osoitetaan yleisille symboleille lähtötiedostotyypin valinnasta; muuten ei-Relocatable output -tyyppiset voimat määräävät osoitteet yhteisiin symboleihin. käyttämällä--no määritellä-common mahdollistaa yhteisen kirjaston viittaamien yhteisten tunnusten osoittamisen osoitteet vain pääohjelmaan. Tämä poistaa käyttämättömät kopiointitilat jaetun kirjaston ja estää mahdolliset sekaannukset väärien kopioiden ratkaisemiseen, kun on olemassa monia dynaamisia moduuleja, joilla on erikoistuneita hakupolkuja runtime-symbolien resoluutiolle.

--defsym symboli = ilmaisu

Luo maailmanlaajuinen symboli tulostustiedostossa, joka sisältää absoluuttisen osoitteen ilmaisu . Voit käyttää tätä valintaa niin monta kertaa kuin tarpeen useiden symbolien määrittämiseksi komentoriviltä. Rajoitettu aritmeettinen muoto on tuettu ilmaisu Tässä yhteydessä voit antaa heksadesimaalivakion tai olemassa olevan symbolin nimen tai lisätä heksadesimaalisten vakiojen tai symbolien lisäämistä tai vähentämistä käyttämällä "+" ja "-". Jos tarvitset tarkempia lausekkeita, harkitse linkkikomentokielen käyttämistä komentosarjasta. Huomautus: välissä ei saa olla valkoista tilaa symboli , yhtäläinen merkki (``='') ja ilmaisu .

--demangle = tyyli

--no-demangle

Nämä vaihtoehdot ohjaavat, haittaavatko symbolien nimet virheviesteissä ja muissa lähdöissä. Kun linkkeriä kehotetaan purkamaan, se yrittää esittää symbolien nimet luettavasti: se leikkaa johtavat alareunat, jos niitä käytetään objektitiedostomuodossa ja muuntaa C ++: n hajonneiden symbolien nimet käyttäjän luettavissa oleviin nimiin. Eri kääntäjillä on erilaiset haarautustyypit. Valinnaisen demangling-tyylin argumenttia voidaan käyttää kääntäjän sopivan demangling-tyylin valitsemiseen. Linkkeri vaimentaa oletusarvoisesti, ellei ympäristömuuttuja oleCOLLECT_NO_DEMANGLE on asetettu. Näitä vaihtoehtoja voidaan käyttää oletusarvon ohittamiseen.

--dynamic-linkkeri tiedosto

Aseta dynaamisen linkittäjän nimi. Tämä on tarkoituksenmukaista vain, kun luodaan dynaamisesti linkitetyt ELF-suoritustiedostot. Oletusarvoinen dynaaminen linkkeri on normaalisti oikea; älä käytä tätä, ellet tiedä, mitä teet.

--embedded-relocs

Tämä vaihtoehto on merkityksellinen vain yhdistettäessä MIPS-upotettua PIC-koodia, jonka -membedded-pic -vaihtoehto tuottaa GNU-kääntäjälle ja kokoonpanijalle. Se aiheuttaa linkkeri luoda taulukko, jota voidaan käyttää ajon aikana, jotta siirretään kaikki tiedot, jotka oli staattisesti alustettu osoittimien arvoiksi. Katso lisätietoja koodista testsuite / ld-empic.

--fatal-varoitukset

Käsittele kaikkia varoituksia virheinä.

--force-exe-pääte

Varmista, että tulostustiedostossa on .exe-välilehti.

Jos onnistuneesti luotu täydellisesti yhdistetty tulostustiedosto ei ole ".exe" tai ".dll" -liite, tämä vaihtoehto pakottaa linkkeri kopioimaan tulostustiedoston samaan nimiin ".exe" -tiedostoilla. Tämä vaihtoehto on hyödyllinen käytettäessä modifioimattomia Unix-määritystiedostoja Microsoft Windows -asemalla, koska jotkin Windows-versiot eivät näytä kuvaa, ellei se pääty ".exe" -tiedostoon.

--no-gc-profiilit

--gc-osat

Ota käyttöön käyttämättömien syöttöosien roskat. Se jätetään huomiotta kohteille, jotka eivät tue tätä vaihtoehtoa. Tämä vaihtoehto ei ole yhteensopiva-r, eikä sitä tulisi käyttää dynaamisessa liittämisessä. Oletuskäyttäytyminen (tämän roskakokoelman suorittamatta jättäminen) voidaan palauttaa määrittämällä--no-gc-profiilit komentorivillä.

--auta

Tulosta yhteenveto komentorivin vaihtoehdoista vakiotulosteesta ja poistumisesta.

--target-help

Tulosta yhteenveto kaikista kohdekohtaisista vaihtoehdoista vakiotulosteessa ja poistumisessa.

-Kartta MAPFILE

Tulosta linkkikartta tiedostoon MAPFILE . Katso kuvaus-M vaihtoehto, yllä.

--no-keep-muisti

LD tavallisesti optimoi nopeuden muistin käytöllä tallentamalla muistiin syöttötiedostojen symbolitietoja. Tämä vaihtoehto kertooLD muistuttaa sen sijaan muistin käyttöä optimoimalla symbolitaulukot tarvittaessa uudelleen. Tämä voi olla tarpeen, josLD loppuu muistitilasta samalla kun yhdistää suuren suoritustiedoston.

--no-määrittelemätön

-z defs

Normaalisti, kun luodaan ei-symbolinen jaettu kirjasto, määrittelemättömät symbolit sallitaan ja runtime loader ratkaisee. Nämä vaihtoehdot estävät tällaiset määrittelemättömät symbolit.

--allow-multiple-määritelmä

-z muldefs

Normaalisti, kun symboli on määritetty useita kertoja, linkkeri raportoi kuolemaan johtaneen virheen. Nämä vaihtoehdot mahdollistavat useita määritelmiä ja käytetään ensimmäistä määritelmää.

--allow-shlib-määrittelemättömän

Salli määrittelemättömät symbolit jaetuissa objekteissa, vaikka --no-undefined on asetettu. Nettotulos on se, että tavallisissa kohteissa määrittelemät symbolit aiheuttavat edelleen virheen, mutta ei-määritettyjä symboleja jaetuissa objekteissa jätetään huomiotta. No_undefinedin toteutus tekee olettamukseksi, että runtime linkkeri torjuu määrittelemättömillä symboleilla. On kuitenkin olemassa ainakin yksi järjestelmä (BeOS), jossa määrittelemättömät symbolit jaetuissa kirjastoissa ovat normaaleja, koska ydin korjaa ne latausaikana valitsemaan mikä toiminto sopii parhaiten nykyiseen arkkitehtuuriin. I.E. valitse dynaamisesti sopiva memset-toiminto. Ilmeisesti on myös normaalia, että HPPA-jaetut kirjastot ovat määrittelemättömiä symboleja.

--no-määrittelemätön-versio

Normaalisti kun symboli on määrittelemätön versio, linkkeri jättää sen huomiotta. Tämä vaihtoehto estää symbolit, joissa on määrittelemätön versio, ja sen sijaan annetaan virheellinen virhe.

--no-varoittaa-epäsuhta

YleensäLD antaa virheen, jos yrität yhdistää syöttötiedostoja, jotka eivät ole yhteensopivia jostain syystä, ehkä siksi, että ne on koottu eri prosessoreille tai erilaisille endianness-tasoille. Tämä vaihtoehto kertooLD että se pitäisi äänettömästi sallia tällaiset mahdolliset virheet. Tätä vaihtoehtoa saa käyttää vain varoen, jos olet tehnyt joitain erityistoimia, jotka varmistavat linkkeri-virheiden olevan sopimattomia.

--no-koko-arkisto

Poista käytöstä--whole-arkisto vaihtoehto myöhemmille arkistotiedostoille.

--noinhibit-exec

Säilytä suoritettava ulostulo tiedosto aina, kun se on vielä käyttökelpoinen.Yleensä linkkeri ei tuota tulostustiedostoa, jos se havaitsee virheitä linkkiprosessin aikana. se poistuu kirjoittamasta tulostustiedostoa, kun se antaa minkä tahansa virheen.

-nostdlib

Ainoastaan ​​kirjastojen hakemistoja, jotka on nimenomaisesti määritetty komentorivillä. Linkkriprojekteissa määritetyt kirjastohakemistot (mukaan lukien komentorivillä määritetyt linkkikirjoitukset) jätetään huomiotta.

--oformat lähtö-muoto

LD voidaan konfiguroida tukemaan useampaa kuin yhtä erilaista objektitiedostoa. Jos sinunLD on määritetty tällä tavalla, voit käyttää--oformat vaihtoehto määrittää binaarimuoto lähdetieto-objektitiedostolle. VaikkaLD on määritetty tukemaan vaihtoehtoisia esitysmuotoja, sinun ei tarvitse yleensä määrittää tätä, kutenLD pitäisi olla määritetty tuottamaan oletuslähtöformaatti tavallisin formaatti kustakin koneesta. lähtö-muoto on tekstijono, BFD-kirjastojen tukema tietyn muoto. (Voit luetella käytettävissä olevat binäärimuodotobjdump -i.) Komentosarjan komento "OUTPUT_FORMAT" voi myös määrittää tulostusmuodon, mutta tämä vaihtoehto ohittaa sen.

-qmagic

Tätä vaihtoehtoa ei oteta huomioon Linuxin yhteensopivuuden vuoksi.

-Qy

Tätä vaihtoehtoa ei oteta huomioon SVR4-yhteensopivuuden vuoksi.

--rentoutua

Vaihtoehto, jossa on koneesta riippuvia vaikutuksia. Tätä vaihtoehtoa tuetaan vain muutamalla tavoitteella.

Joillakin alustoilla--rentoutua vaihtoehto mahdollistaa globaalien optimointien, jotka ovat mahdollisia, kun linkki ratkaisee ohjelman osoittamisen, kuten rentouttavia osoitetiloja ja uusien ohjeiden syntetisointia lähtöobjektitiedostossa.

Joillakin käyttöympäristöillä nämä linkit-aikaiset globaalit optimoinnit saattavat tehdä tuloksena olevan suoritettavan ohjelman symbolisen virheenkorjauksen mahdottomaksi. Tämä tiedetään tapahtuvan Matsushita MN10200- ja MN10300-prosessorien tapauksessa.

Alustoilla, joissa tätä ei tueta,--rentoutua hyväksytään, mutta jätetään huomiotta.

--retain-symbolit-tiedosto Tiedoston nimi

Säilyttää vain tiedostossa luetellut symbolit Tiedoston nimi , hylkäämään kaikki muut. Tiedoston nimi on yksinkertaisesti litteä tiedosto, jossa on yksi symboli per rivi. Tämä vaihtoehto on erityisen hyödyllinen ympäristöissä (kuten VxWorks), joissa suuri globaali symbolitietokanta kertyy vähitellen, jotta se säästää ajaa-aikaista muistia.

--retain-symbolit-tiedosto tekee ei hylkää määrittelemättömät symbolit tai symbolit, joita tarvitaan siirtämiseen.

Voit vain määrittää--retain-symbolit-tiedosto kerran komentorivillä. Se ohittaa-S ja-S.

-rpath dir

Lisää hakemisto runtime library -hakusivulle. Tätä käytetään, kun kytket ELF: n ja muiden jaettujen objektien välisen yhteyden. Kaikki-rpath argumentit ketjutetaan ja välitetään runtime linkkeriin, joka käyttää niitä etsimään jaetuja esineitä ajon aikana.-rpath vaihtoehtoa käytetään myös etsittäessä yhteisiä objekteja, joita tarvitaan linkin sisältämien yhteisten objektien yhteydessä; katso kuvaus-rpath-link vaihtoehto. Jos-rpath ei käytetä yhdistettäessä ELF-suoritustiedostoa, ympäristömuuttujan "LD_RUN_PATH" sisältöä käytetään, jos se on määritetty.

-rpath vaihtoehtoa voidaan käyttää myös SunOS: ssä. Oletuksena SunOS: ssä linkkeri muodostaa runtime -haun korjaustiedoston kaikistaL vaihtoehtoja se on annettu. Jos-rpath vaihtoehtoa käytetään, runtime-hakupolku muodostetaan yksinomaan käyttämällä-rpath vaihtoehtoja, jättäen huomiottaLvaihtoehtoja. Tämä voi olla hyödyllistä käytettäessä gcc: tä, joka lisää moniaL vaihtoehtoja, jotka saattavat olla asennettuina tiedostojärjestelmissä.

Yhteensopivuus muiden ELF - linkkien kanssa, josR vaihtoehtoa seuraa hakemiston nimi, eikä tiedostonimi, sitä käsitellään nimellä-rpath vaihtoehto.

-rpath-link DIR

Kun käytät ELF: ää tai SunOSia, yksi jaettu kirjasto voi vaatia toisen. Näin tapahtuu, kun "ld-jakajana" -yhteys sisältää jaetun kirjaston yhdeksi syöttötiedostoiksi.

Kun linkittäjä tapaa tällaisen riippuvuuden, kun hän tekee ei-jaettua, ei-siirrettävää linkkiä, hän yrittää automaattisesti etsiä tarvittavan jaetun kirjaston ja sisällyttää sen linkkiin, ellei sitä sisällytetä nimenomaisesti. Tällaisessa tapauksessa-rpath-link -asetus määrittää ensimmäiset haetut hakemistot.-rpath-link vaihtoehto voi määrittää hakemistomerkkien sarjan joko määrittämällä nimet, jotka on erotettu kaksoispisteillä tai jotka näkyvät useita kertoja.

Tätä vaihtoehtoa tulee käyttää varoen, koska se ohittaa hakupolun, joka on ehkä vaikeasti koottu jaettuun kirjastoon. Tällaisessa tapauksessa on mahdollista käyttää tahattomasti eri hakupolkua kuin runtime linkkeri tekisi.

Linkki käyttää seuraavia hakupolkuja löytääkseen tarvittavat jaetut kirjastot.

1.

Mikä tahansa-rpath-link vaihtoehtoja.

2.

Mikä tahansa-rpath vaihtoehtoja. Ero välillä-rpath ja-rpath-link on se, että-rpath vaihtoehdot sisältyvät suoritustiedostoon ja niitä käytetään ajon aikana, kun taas-rpath-link vaihtoehto on vain tehokas linkin ajan. Se on vain natiivi linkkeri.

3.

ELF - järjestelmässä, jos-rpath ja "rpath-link" -vaihtoehtoja ei käytetty, etsi ympäristömuuttujan "LD_RUN_PATH" sisältö. Se on vain natiivi linkkeri.

4.

SunOS: ssa, jos-rpath vaihtoehtoa ei käytetty, hae kaikki määritetyt hakemistotL vaihtoehtoja.

5.

Natiiviliitännän osalta ympäristömuuttujan sisältö "LD_LIBRARY_PATH".

6.

Luonnollisen ELF-linkkeriä varten jaetun kirjaston "DT_RUNPATH" tai "DT_RPATH" -hakemistot etsitään sen tarvitsemia jaettuja kirjastoja.DT_RPATH-merkinnät jätetään huomiotta, jos DT_RUNPATH-merkinnät ovat olemassa.

7.

Normaalisti oletushakemistot / lib ja / Usr / lib .

8.

Jos kyseessä on ELF-järjestelmän kotimainen linkki, jos tiedosto on tiedoston /etc/ld.so.conf on luettelo tiedostossa olevista hakemistoista.

Jos vaadittua jaettua kirjastoa ei löydy, linkki antaa varoituksen ja jatkaa linkkiä.

-shared

-Bshareable

Luo jaettu kirjasto. Tätä tuetaan tällä hetkellä vain ELF-, XCOFF- ja SunOS-alustoilla. SunOS: ssa linkkeri luo automaattisesti jaetun kirjaston, jos-e vaihtoehtoa ei käytetä ja linkissä on määrittelemättömiä symboleja.

--sort-common

Tämä vaihtoehto kertooLD lajitella tavalliset symbolit koon mukaan, kun ne sijoittavat ne asianmukaisiin tuotantoosiin. Ensin tulee kaikki yhden tavun symbolit, sitten kaikki kaksi tavua, sitten kaikki neljä tavua ja sitten kaikki muu. Tämä on vältettävä yhtälöiden välisten aukkojen välisiä aukkoja.

--jäljitelmätiedosto koko

Samanlainen--split-by-reloc mutta luo jokaiselle tulotiedostolle uuden ulostulo-osan koko on saavutettu. koko oletusarvo on 1 koko, jos sitä ei anneta.

--pakettien välityksellä Kreivi

Yritetään luoda ylimääräisiä osioita tulostetiedostossa, joten tiedostossa ei ole yhtään tuotososaa Kreivi siirroista. Tämä on hyödyllistä tuotettaessa valtavia uudelleensijoitettavia tiedostoja ladattavaksi tiettyihin reaaliaikaisiin ytimiin COFF-objektiedostomuodolla; koska COFFcannot edustaa yli 65535 siirtoa yhdestä osasta. Huomaa, että tämä ei toimi objektitiedostomuodoilla, jotka eivät tue mielivaltaisia ​​osioita. Linkki ei jakaa yksittäisiä syöttöjaksoja uudelleenjakoon, joten jos yhdellä syöteosalla on enemmän kuin Kreivi siirrot yksi lähtö osa sisältää, että monet siirrot. Kreivi oletusarvo on 32768.

--stats

Lasketaan ja näytetään linkkimen toimintaa koskevat tilastot, kuten toteutusaika ja muistin käyttö.

--traditional-formaatti

Joidenkin kohteiden osaltaLD on erilainen jollakin tavalla olemassa olevan linkkimen tuotoksesta. Tämä kytkin pyytääLD käyttää perinteistä muotoa sen sijaan.

Esimerkiksi SunOS,LD yhdistää päällekkäiset merkinnät symbolin merkkijono -taulukkoon. Tämä voi pienentää tulostustiedoston koon täydellä virheenkorjaustiedoilla yli 30 prosentilla. Valitettavasti SunOS "dbx" -ohjelma ei voi lukea tuloksena olevaa ohjelmaa ("gdb" ei ole ongelma).--traditional-formaatti kytkin kertooLD ei yhdistää päällekkäisiä merkintöjä.

--section-start sectionname = Org

Etsi osio tuotetiedostosta absoluuttisessa osoitteessa Org . Voit käyttää tätä vaihtoehtoa niin monta kertaa kuin tarvitaan, jotta voit etsiä useita osioita komentoriviltä. Org on oltava yksi heksadesimaalinen kokonaisluku; yhteensopivuuden muiden linkkereiden kanssa, voit jättää johtavan0x jotka yleensä liittyvät heksadesimaaliarvoihin. Huomautus: välissä ei saa olla valkoista tilaa sectionname , yhtäläinen merkki (``='') ja Org .

-Tbss Org

-Tdata Org

-Ttext Org

Käyttää Org kuten lähtötietona --- vastaavasti --- "bss", "data" tai "teksti" segmentti tulostustiedoston. Org on oltava yksi heksadesimaalinen kokonaisluku; yhteensopivuuden muiden linkkereiden kanssa, voit jättää johtavan0x jotka yleensä liittyvät heksadesimaaliarvoihin.

--dll-monisanainen

verbose

Näytä versionumeroLD ja luetella tuetut linkkitemulaatiot. Näyttää, mitä syöttötiedostoja voi ja ei voida avata. Näytä linkkikirjoittajan linkkikirjoitus.

Version-script = version-Komentosarjatiedoston

Määritä version skriptin nimi linkkeriin. Tätä käytetään tyypillisesti luodessasi jaettuja kirjastoja lisäämällä tietoja luodun kirjaston version heirarkiasta. Tämä vaihtoehto on vain merkityksellinen ELF-alustoilla, jotka tukevat jaettuja kirjastoja.

--warn-common

Varoitus, kun yhteinen symboli on yhdistetty toiseen yleiseen symboliin tai symbolien määrittelyyn. Unix-linkit sallivat tämän hieman epätyydyttävän käytännön, mutta linkkereita joissakin muissa käyttöjärjestelmissä ei. Tämän vaihtoehdon avulla voit löytää mahdollisia ongelmia maailmanlaajuisten symbolien yhdistämisestä. Valitettavasti jotkut C-kirjastot käyttävät tätä käytäntöä, joten saatat saada joitakin varoituksia kirjastojen symboleista sekä ohjelmista.

Kolme erilaista maailmanlaajuista symbolia kuvataan tässä C-esimerkissä:

int i = 1;

Määritelmä, joka menee lähtötiedoston alustettuun tietoosiosiin.

extern int i;

Määrittelemätön viittaus, jossa ei ole tilaa. Jokaiselle muuttujalle on määritettävä määritelmä tai yhteinen symboli.

int i;

Yhteinen symboli. Jos vain yksi muuttuja (yksi tai useampi) on yhteisiä symboleja, se siirtyy tulosteen tiedostolle, joka ei ole alustettu. Linkki yhdistää samat muuttujat useille yhteisille symboleille yhdeksi symboliksi. Jos ne ovat eri kokoisia, se valitsee suurimman koon. Linkki muodostaa yhteisen symbolin julistukseen, jos sama muuttuja on määritelty.

--warn-common vaihtoehto voi tuottaa viisi erilaista varoitusta. Jokainen varoitus koostuu viivaparista: ensimmäinen kuvataan juuri kohdatun symbolin ja toinen kuvaa edellistä symbolia, jolla on sama nimi. Yksi tai molemmat kaksi symbolia ovat yhteinen symboli.

1.

Yhteisen symbolin kääntäminen viitteeksi, koska symboli on jo määritelty.

(

): varoitus: yhteinen `"määriteltynä (
): varoitus: määritelty tässä

2.

Yhteisen symbolin kääntäminen viitteeksi, koska symboliin tulee myöhemmin määritelmä. Tämä on sama kuin edellinen tapaus, paitsi että symboleja esiintyy eri järjestyksessä.

(

): varoitus: määritelmä `"ensisijainen yhteinen (
): varoitus: yhteinen on täällä

3.

Yhdistämällä yhteinen symboli edellisellä samankokoisella yhteisellä symbolilla.

(

): varoitus: useita yhteisiä `' (
): varoitus: edellinen yhteinen on täällä

4.

Yhteisen symbolin yhdistäminen aiempaan ylempään yhteiseen symboliin.

(

): varoitus: yhteinen `"ohittaa suurempi yhteinen (
): varoitus: suurempi yhteinen on täällä

5.

Yhteisen symbolin yhdistäminen edelliseen pienempään yhteiseen symboliin. Tämä on sama kuin edellinen tapaus, paitsi että symboleja esiintyy eri järjestyksessä.

(

): varoitus: yhteinen `"ylivoimainen pienempi yhteinen (
): varoitus: pienempi on täällä

--warn-rakentajien

Varoita, jos käytetään maailmanlaajuisia konstruktoreita. Tämä on hyödyllinen muutamille objektiedostomuodoille. Muotoilla, kuten COFF tai ELF, linkki ei pysty havaitsemaan maailmanlaajuisten konstruktoreiden käyttöä.

--warn-multiple-gp

Varoittaa, jos tulostustiedostossa tarvitaan useampia globaaleja osoittimia. Tämä on merkityksellistä vain tietyille prosessoreille, kuten Alpha. Erityisesti jotkut prosessorit asettavat suurimittaiset vakiot erityiseen osaan. Erityinen rekisteri (globaali osoitin) osoittaa tämän osan keskelle niin, että vakiot voidaan ladata tehokkaasti perusrekisterin suhteellisen osoitustilan kautta. Koska siirretty perus-rekisterin suhteellinen tila on kiinteä ja suhteellisen pieni (esim. 16 bittiä), tämä rajoittaa vakiomallin enimmäiskokoa. Näin ollen suur