Linux / Unix Kmand: Id

ISEM

ld - Bl-użu ta 'LD , il- GNU linker

SINOPSI

ld [ għażliet ] objfile ...

DESKRIZZJONI

Ld tgħaqqad numru ta ' fajls ta' oġġett u arkivju, tittrasferixxi d-dejta tagħhom u torbot referenzi simboli. Normalment l-aħħar pass fil-kumpilazzjoni ta 'programm huwa li tmexxi ld .

Ld jaċċetta fajls tal- Lingwa tal- Kmand Linker miktubin f'supasea tal-Sinteżi tal-Lingwa tal-Kmand tal-Editur tal-Link ta 'AT & T, biex jipprovdu kontroll espliċitu u totali fuq il-proċess ta' rabta.

Din il-paġna manwali ma tiddeskrivix il-lingwa tal-kmand; ara d-daħla ld f '"info", jew il-manwal ld: il- GNU linker, għal dettalji sħaħ dwar il-lingwa tal-kmand u fuq aspetti oħra tal-linkatur tal-GNU.

Din il-verżjoni ta ' ld tuża l-libreriji tal-BFD għal skopijiet ġenerali biex topera fuq fajls ta' oġġetti. Dan jippermetti li jaqra, jikkombina u jikteb fajls ta 'oġġett f'ħafna formati differenti --- per eżempju, COFF jew "a.out". Formati differenti jistgħu jkunu marbuta flimkien biex jipproduċu kwalunkwe tip ta 'fajl ta' oġġett disponibbli.

Apparti mill-flessibilità tagħha, il-konnessur GNU huwa iktar utli minn dawk li jgħaqqdu oħrajn biex jipprovdu informazzjoni dijanjostika. Bosta linkers jabbandunaw l-eżekuzzjoni immedjatament meta jiltaqgħu ma 'żball; kull meta jkun possibbli, tkompli tesegwixxi, u tkun tista 'tidentifika żbalji oħra (jew, f'xi każijiet, tikseb fajl ta' produzzjoni minkejja l-iżball).

Il-linker GNU ld huwa maħsub biex ikopri firxa wiesgħa ta 'sitwazzjonijiet, u li jkun kemm jista' jkun kompatibbli ma 'dawk li jgħaqqdu oħrajn. Bħala riżultat, għandek ħafna għażliet biex tikkontrolla l-imġiba tagħha.

GĦAŻLIET

Ir-rabta jappoġġja numru kbir ta 'għażliet ta' linja ta ' kmand , iżda fil-prattika ftit minnhom jintużaw f'kuntest partikolari. Per eżempju, l-użu frekwenti ta ' ld huwa li jgħaqqad fajls standard ta' oġġetti Unix fuq sistema standard Unix appoġġjata. Fuq sistema bħal din, biex tgħaqqad fajl "hello.o":

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

Dan jgħidlek biex tipproduċi fajl imsejjaħ riżultat bħala li jgħaqqad il-fajl "/lib/crt0.o" ma "hello.o" u l-librerija "libc.a", li se tiġi mid-direttorji tat-tiftix standard. (Ara d-diskussjoni ta 'l-għażla-l hawn.)

Uħud mill- għażliet tal-linja tal- kmand għal ld jistgħu jiġu speċifikati fi kwalunkwe punt tal-linja tal-kmand. Madankollu, għażliet li jirreferu għal fajls, bħal -l jew -T , jikkawżaw li l-fajl jinqara fil-punt li fih l-għażla tidher fil-linja tal-kmand, relattiva għall-fajls tal-oġġett u għażliet ta 'fajls oħra. Ir-ripetizzjoni ta 'għażliet mhux tal-fajl b'argument differenti ma jkollhiex effett ulterjuri, jew teqred l-okkorrenzi preċedenti (dawk aktar lejn ix-xellug fuq il-linja tal-kmand) ta' dik l-għażla. Għażliet li jistgħu jiġu speċifikati b'mod sinifikanti aktar minn darba huma nnutati fid-deskrizzjonijiet ta 'hawn taħt.

L-argumenti li mhumiex għażla huma fajls ta 'oġġetti jew arkivji li għandhom ikunu marbuta flimkien. Jistgħu jsegwu, jippreċedu, jew jitħalltu ma 'għażliet tal-linja tal-kmand, ħlief li argument ta' fajl ta 'oġġett ma jistax jitqiegħed bejn għażla u l-argument tiegħu.

Normalment ir-rabta hija invokata b'mill-inqas fajl ta 'oġġett wieħed, iżda tista' tispeċifika forom oħra ta 'fajls ta' input binarju bl-użu -l , -R , u l-lingwa tal-kmand tal-iskritt. Jekk l- ebda fajls ta 'input binarju ma huma speċifikati, il-linker ma jipproduċix xi ħruġ, u joħroġ il-messaġġ Nru fajls ta' input .

Jekk il-linker ma jistax jirrikonoxxi l-format ta 'fajl ta' oġġett, huwa jassumi li huwa skrittur tal-linker. L-iskritt speċifikat b'dan il-mod iżid l-iskrittura ewlenija tar-rabta użata għar-rabta (jew l-iskrittura tal-linker default jew dik speċifikata bl-użu -T ). Din il-karatteristika tippermetti li l-linker jorbot ma 'fajl li jidher li huwa oġġett jew arkivju, iżda fil-fatt sempliċement jiddefinixxi xi valuri ta' simboli, jew juża "INPUT" jew "GROUP" biex iġorr oġġetti oħra. Innota li l-ispeċifikazzjoni ta 'kitba b'dan il-mod sempliċement iżżid l-iskrittura ewlenija tar-rabta; uża l-għażla -T biex tissostitwixxi l-iskrittura default linker għal kollox.

Għal għażliet li l-ismijiet tagħhom huma ittra waħda, l-argumenti tal-għażla għandhom jew isegwu l-ittra ta 'għażla mingħajr intervista ta' spazju vojt, jew jingħataw bħala argumenti separati immedjatament wara l-għażla li teħtieġhom.

Għal għażliet li l-ismijiet tagħhom huma ittri multipli, wieħed jew tnejn jista 'jippreċedi l-isem tal-għażla; per eżempju, -tempra-simbolu u - it- traċċa-simbolu huma ekwivalenti. Nota - hemm eċċezzjoni waħda għal din ir-regola. L-għażliet ta 'ittra multipli li jibdew b'każ żgħir' o 'jistgħu jiġu preċeduti biss minn żewġ dashes. Dan biex titnaqqas il-konfużjoni mal-opzjoni -o . Hekk per eżempju - is- set ta 'l-isem ta' l-output tal- mużika maġġuri - - is- setmaniku jistabbilixxi l-bandiera NMAGIC fuq il-ħruġ.

L-argumenti għall-għażliet ta 'ittri multipli għandhom jew ikunu separati mill-isem tal-opzjoni b'sinjal ugwali, jew jingħataw bħala argumenti separati immedjatament wara l-għażla li teħtieġhom. Per eżempju, --trace-symbol foo u --trace-symbol = foo huma ekwivalenti. Abbrevjazzjonijiet uniċi tal-ismijiet tal-għażliet ta 'ittri multipli huma aċċettati.

Nota - jekk il-linker ikun qed jiġi invokat indirettament, permezz ta 'sewwieq tal-kompilatur (eż. Gcc ) allura l-għażliet kollha tal-linja tal-kmand tal-linker għandhom ikunu prefissi minn -Wl, (jew dak li hu xieraq għas-sewwieq tal-kompilatur partikolari) bħal dan:

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

Dan huwa importanti, għax inkella l-programm tas-sewwieq tal-kompilatur jista 'jaqleb b'mod silenzjuż l-għażliet tar-rabta, u dan jirriżulta f'rabta ħażina.

Hawnhekk hawn tabella tal-swiċċijiet ġeneriċi tal-kmand tal-kmand aċċettati mill-linker GNU:

-a keyword

Din l-għażla hija appoġġjata għall-kompatibilità HP / UX. L-argument tal- kelma prinċipali għandu jkun wieħed mill- arkivju tal- kordi , maqsum , jew inadempjenza . -forniment huwa funzjonalment ekwivalenti għal -static , u l-oħra żewġ keywords huma funzjonalment ekwivalenti għal -Bynamic . Din l-għażla tista 'tintuża kull numru ta' drabi.

- Arkitettura

- arkitettura = arkitettura

Fir-rilaxx attwali ta ' ld , din l-għażla hija utli biss għall-familja ta' arkitetturi Intel 960. F'dik il-konfigurazzjoni ld , l-argument tal- arkitettura jidentifika l-arkitettura partikolari fil-familja 960, li jippermetti xi salvagwardji u jimmodifika l-arkivju-librerija.

Rilaxxi futuri ta ' ld jistgħu jappoġġaw funzjonalità simili għal familji ta' arkitettura oħra.

-b input-format

--format = input-format

Jista 'jkun konfigurat biex isostni aktar minn tip wieħed ta' fajl ta 'oġġett. Jekk il- ld tiegħek huwa konfigurat b'dan il-mod, tista 'tuża l-għażla -b biex tispeċifika l-format binarju għal fajls ta' oġġetti ta 'input li jsegwu din l-għażla fuq il-linja tal-kmand. Anke meta ld tkun konfigurat biex tappoġġja formati ta 'oġġett alternattivi, normalment m'għandekx għalfejn tispeċifika dan, peress li l-konfigurazzjoni għandha tkun konfigurata biex tistenna bħala l-format tad-dħul default il-format l-aktar normali fuq kull magna. il-format tad-dħul huwa sinjal ta 'test, l-isem ta' format partikolari appoġġjat mill-libreriji tal-BFD. (Tista 'telenka l-formats binarji disponibbli b'objdump -i .)

Inti tista 'tixtieq tuża din l-għażla jekk tkun qed tgħaqqad fajls b'format binarju mhux tas-soltu. Tista 'wkoll tuża -b biex taqleb formati b'mod espliċitu (meta tgħaqqad fajls ta' oġġetti b'formati differenti), billi tinkludi -b input-format qabel kull grupp ta 'fajls ta' oġġetti f'format partikolari.

Il-format default jittieħed mill-varjabbli ta 'l-ambjent "GNUTARGET".

Tista 'wkoll tiddefinixxi l-format tal-input minn kitba, billi tuża l-kmand "TARGET";

-c MRI-commandfile

--mri-script = MRI-file tal-kmand

Għal kompatibilità ma 'linkers prodotti minn MRI, ld taċċetta fajls b'kitba miktuba f'lingwa ta' kmand alternattiva u ristretta, deskritta fis-sezzjoni tal-Fajls tal-Iskritturi Kompatibbli tal-MRI tad-dokumentazzjoni GNU ld. Introduċi fajls b'kitba MRI bl-għażla -c ; uża l-għażla -T biex tmexxi skripts tal-linker miktubin fil-lingwa tal-kitba ta 'skop ġenerali ta' ld . Jekk MRI-cmdfile ma teżistix, ld tfittex fid-direttorji speċifikati minn xi għażliet -L .

-d

-dc

-dp

Dawn it-tliet għażliet huma ekwivalenti; forom multipli huma appoġġjati għall-kompatibilità ma 'linkers oħra. Huma jassenjaw spazju għal simboli komuni anke jekk jiġi rreġistrat fajl ta 'produzzjoni li jista' jiġi rilokat (bl-r). Il-kmand tal-kitba "FORCE_COMMON_ALLOCATION" għandu l-istess effett.

id-dħul

--entry = dħul

Uża d- dħul bħala s-simbolu espliċitu biex tibda l-eżekuzzjoni tal-programm tiegħek, aktar milli l-punt tad-dħul awtomatiku. Jekk ma hemm l-ebda simbolu msemmi dħul , il-linker jipprova janalizza d- dħul bħala numru, u juża dak bħala l-indirizz tad-dħul (in-numru għandu jiġi interpretat fuq bażi 10; tista 'tuża 0x ewlieni għal bażi 16, għall-bażi 8).

-E

- esportazzjoni-dinamika

Meta toħloq eżekutibbli marbuta b'mod dinamiku, żid is-simboli kollha mat-tabella tas-simboli dinamiċi. It-tabella tas-simboli dinamiċi hija s-sett ta 'simboli li huma viżibbli minn oġġetti dinamiċi f'ħin reali.

Jekk ma tużax din l-għażla, it-tabella simbolika dinamika normalment ikun fiha biss dawk is-simboli li huma referenzjati minn xi oġġett dinamiku msemmi fil-link.

Jekk tuża "dlopen" biex tagħbija oġġett dinamiku li jeħtieġ li tirreferi lura għas-simboli definiti mill-programm, aktar milli xi oġġett dinamiku ieħor, allura probabilment ikollok bżonn tuża din l-għażla meta torbot il-programm innifsu.

Tista 'wkoll tuża l-iskrittura tal-verżjoni biex tikkontrolla liema simboli għandhom jiżdiedu mat-tabella tas-simboli dinamiċi jekk il-format tal-output jappoġġjah. Ara d-deskrizzjoni ta ' --version-script f' @ ref {VERSION}.

-EB

Agħmel rabta fuq oġġetti kbar. Dan jaffettwa l-format tal-output default.

-EL

Agħmel rabta ma 'oġġetti żgħar. Dan jaffettwa l-format tal-output default.

-f

- l- isem ta 'l-isem

Meta toħloq oġġett komuni ELF, stabbilixxiet il-qasam DT_AUXILIARY intern fl-isem speċifikat. Dan jgħidlek il-linker dinamiku li t-tabella tas-simboli tal-oġġett komuni għandha tintuża bħala filtru awżiljarju fuq it-tabella tas-simboli tal- isem tal- oġġett maqsum.

Jekk aktar tard tgħaqqad programm kontra dan l-oġġett tal-filtru, allura, meta tmexxi l-programm, il-linker dinamiku jara l-qasam DT_AUXILIARY. Jekk il-linker dinamiku jirrisolvi xi simboli mill-oġġett tal-filtru, l-ewwel jivverifika jekk hemmx definizzjoni fl- isem ta 'l- oġġett maqsum. Jekk hemm waħda, se tintuża minflok id-definizzjoni fl-oġġett tal-filtru. L- isem ta ' oġġett maqsum m'għandux għalfejn jeżisti. Għalhekk l- isem ta ' oġġett maqsum jista' jintuża biex jipprovdi implimentazzjoni alternattiva ta 'ċerti funzjonijiet, forsi għall-debugging jew għall-prestazzjoni speċifika tal-magna.

Din l-għażla tista 'tiġi speċifikata aktar minn darba. L-annotazzjonijiet DT_AUXILIARY se jinħolqu fl-ordni li fih jidhru fuq il-linja tal-kmand.

- Isem F

- isem tal- filtru

Meta toħloq oġġett komuni ELF, stabbilixxiet il-qasam DT_FILTER intern fl-isem speċifikat. Dan jgħidlek il-linker dinamiku li t-tabella tas-simboli tal-oġġett komuni li qed tinħoloq għandha tintuża bħala filtru fuq it-tabella tas-simboli tal- isem tal- oġġett maqsum.

Jekk aktar tard tgħaqqad programm kontra dan l-oġġett tal-filtru, allura, meta tmexxi l-programm, il-linker dinamiku jara l-qasam DT_FILTER. Ir-rabta dinamika se ssolvi s-simboli skond it-tabella tas-simboli ta 'l-oġġett tal-filtru bħas-soltu, iżda fil-fatt tkun marbuta mad-definizzjonijiet misjuba fl- isem ta' l- oġġett maqsum. Għalhekk l-oġġett tal-filtru jista 'jintuża biex jagħżel subsett tas-simboli pprovduti mill- isem tal- oġġett.

Xi rabtiet anzjani użaw l-għażla -F matul għodda ta 'kumpilazzjoni biex jispeċifikaw il-format tal-fajl tal-oġġett kemm għall-fajls tal-oġġetti tal-input u tal-output. Il-GNU linker juża mekkaniżmi oħra għal dan il-għan: l-għażliet -b , --format , --format , il-kmand "TARGET" f'skripers linker u l-varjabbli ambjentali "GNUTARGET". Il-linker GNU jinjora l-għażla -F meta ma joħloqx oġġett maqsum ELF.

- l- isem tal- firma

Meta toħloq oġġett eżekutibbli jew maqsum ELF, ċempel ISEM meta l-oġġett eżekutibbli jew maqsum jinħatt, billi ssettja DT_FINI fl-indirizz tal-funzjoni. B'mod awtomatiku, il-linker juża "_finituri" bħala l-funzjoni li sejħa.

-g

Injorat. Bil-kundizzjoni li jkun hemm kompatibilità ma 'għodda oħra.

-G valur

--gpsize = valur

Issettja d-daqs massimu ta 'oġġetti li għandha tiġi ottimizzata bl-użu tar-reġistru GP għad- daqs . Dan huwa biss ta 'sinifikat għal formati ta' fajls ta 'oġġetti bħal MIPS ECOFF li jappoġġja t-tqegħid ta' oġġetti kbar u żgħar f'taqsimiet differenti. Dan huwa injorat għal formati ta 'fajls oħra ta' oġġett.

-h isem

- isem = isem

Meta toħloq oġġett komuni ELF, stabbilixxiet il-qasam DT_SONAME intern fl-isem speċifikat. Meta eżekutibbli huwa marbut ma 'oġġett maqsum li għandu qasam DT_SONAME, allura meta l-eżekutibbli titmexxa r-rabta dinamika tipprova tagħbija l-oġġett maqsum speċifikat mill-qasam DT_SONAME minflok ma tuża l-isem tal-fajl mogħti lill-linker.

-i

Agħmel rabta inkrimentali (l-istess bħall-għażla -r ).

-init isem

Meta toħloq oġġett eżekutibbli jew maqsum ELF, ċempel ISEM meta jitgħabba l-oġġett eżekutibbli jew maqsum, billi ssettja DT_INIT fl-indirizz tal-funzjoni. B'kontumaċja, ir-rabta tuża "_init" bħala l-funzjoni li sejħa.

-l arkivju

- librerija = arkivju

Żid arkivju fajl arkivju għal-lista ta 'fajls biex tgħaqqad. Din l-għażla tista 'tintuża kull numru ta' drabi. Irid ifittex il-lista tal-passaġġ tiegħu għall-okkorrenzi ta '"libarchive.a" għal kull arkivju speċifikat.

Fuq sistemi li jappoġġjaw libreriji maqsuma, jistgħu wkoll ifittxu libreriji b'estensjonijiet apparti minn ".a". Speċifikament, fuq is-sistemi ELF u SunOS, se tfittex direttorju għal librerija b'estensjoni ta '".so" qabel tiftix għal waħda b'estensjoni ta' ".a". Permezz ta 'konvenzjoni, estensjoni ".so" tindika librerija maqsuma.

Il-linker se jfittex arkivju darba biss, fil-post fejn huwa speċifikat fuq il-linja tal-kmand. Jekk l-arkivju jiddefinixxi simbolu li ma kienx definit f'xi oġġett li deher qabel l-arkivju fuq il-linja tal-kmand, il-linker se jinkludi l-fajl (i) xieraq mill-arkivju. Madankollu, simbolu mhux definit f'oġġett li jidher aktar tard fil-linja tal-kmand mhux se jikkawża li r-rabta tfittex l-arkivju mill-ġdid.

Ara l- - ( għażla għal mezz biex tissaħħaħ il-linker biex tfittex l-arkivji għal ħafna drabi.

Tista 'telenka l-istess arkivju diversi drabi fuq il-linja tal-kmand.

Dan it-tip ta 'tiftix ta' arkivju huwa standard għal dawk li jgħaqqdu Unix. Madankollu, jekk qed tuża ld onAIX, innota li hija differenti mill-imġiba tal-AIX linker.

-L tfittxija

- path- bibljoteka = tfittxija

Żid it- tfittxija tal- passaġġ għal-lista ta 'mogħdijiet li se jfittxu libreriji ta' l-arkivji u skripts ta 'kontroll ta' ld . Tista 'tuża din l-għażla kull numru ta' drabi. Id-direttorji huma mfittxija fl-ordni li fih huma speċifikati fuq il-linja tal-kmand. Direttorji speċifikati fuq il-linja tal-kmand huma mfittxija qabel id-direttorji default. L-għażliet kollha -L japplikaw għall-għażliet kollha -l , irrispettivament mill-ordni li fiha jidhru l-għażliet.

Jekk it- tfittxija tibda b '"=", allura "=" se tiġi sostitwita bil- prefiss tas- sistema, triq speċifikata meta r-rabta tkun konfigurata.

Is-sett predeterminat ta 'mogħdijiet mfittxija (mingħajr ma jiġi speċifikat b'L ) jiddependi fuq liema mod ta' emulazzjoni ld qed juża, u f'xi każijiet ukoll fuq kif ġiet ikkonfigurata.

Il-mogħdijiet jistgħu jiġu speċifikati wkoll f'kitba ta 'rabta bil-kmand "SEARCH_DIR". Direttorji speċifikati b'dan il-mod huma mfittxija fil-punt li fih l-iskrittura tal-linker tidher fil-linja tal-kmand.

-m emulazzjoni

Emulazzjoni tar- rabta tal- emulazzjoni . Tista 'telenka l-emulazzjonijiet disponibbli bl-għażliet --verbose jew -V .

Jekk l-għażla -m ma tintużax, l-emulazzjoni tittieħed mill-varjabbli ambjentali "LDEMULATION", jekk dak ikun definit.

Inkella, l-emulazzjoni awtomatika tiddependi fuq kif ġie kkonfigurat il-linker.

-M

--print-map

Stampa mappa tal-link għall-output standard. Mappa ta 'rabta tipprovdi informazzjoni dwar ir-rabta, inkluż dan li ġej:

*

Fejn il-fajls u s-simboli tal-oġġett jiġu mqassma fil-memorja.

*

Kif jiġu allokati simboli komuni.

*

Il-membri tal-arkivji kollha inklużi fil-link, b'referenza għas-simbolu li wassal biex jinġieb il-membru tal-arkivju.

-n

--magika

Dawwar l-allinjament tal-paġna tat-taqsimiet, u mmarka l-output bħala "NMAGIC" jekk possibbli.

-N

- modiku

Issettja t-test u t-taqsimiet tad-dejta biex ikunu jistgħu jinqraw u jinqraw. Barra minn hekk, m'għandekx il-paġna tallinja s-segment tad-dejta, u żfaċilita r-rabta ma 'libreriji kondiviżi. Jekk il-format ta 'l-output jappoġġja n-numri tal-magic ta' l-Unix stil, immarka l-output bħala "OMAGIC".

--no-omagic

Din l-għażla tinnega ħafna mill-effetti tal-għażla -N . Jistabbilixxi t-taqsima tat-test bħala read-only, u sforz biex is-segment tad-dejta jkun allinjat mal-paġna. Nota - din l-għażla ma tippermettix li tingħaqad ma 'libreriji kondiviżi. Użu -Bynamic għal dan.

-o output

--output = output

Uża l- produzzjoni bħala l-isem tal-programm prodott minn ld ; jekk din l-għażla mhix speċifikata, l-isem a.out jintuża b'mod awtomatiku. Il-kmand tal-kitba "OUTPUT" jista 'jispeċifika wkoll l-isem tal-fajl tal-ħruġ.

-O livell

Jekk il- livell huwa valuri numeriċi akbar minn zero ld jottimizza l-output. Dan jista 'jieħu b'mod sinifikanti itwal u għalhekk probabbilment għandu jkun attivat biss għall-binarju finali.

-q

--emit-relocs

Ħalli t-taqsimiet u l-kontenut tar-rilokazzjoni f'exececutables marbuta b'mod sħiħ. L-analiżi tal-link ta 'wara u għodod ta' ottimizzazzjoni jistgħu jeħtieġu din l-informazzjoni sabiex iwettqu modifiki korretti ta 'eżekutibbli. Dan jirriżulta f'exjutabbli akbar.

Din l-għażla bħalissa hija appoġġjata biss fuq il-pjattaformi tal-ELF.

-r

- identifikabbli

Iġġenera l-output li jista 'jiġi rilokat --- jiġifieri, jiġġenera fajl ta' produzzjoni li jista 'min-naħa tiegħu iservi bħala input għal ld . Dan spiss jissejjaħ rabta parzjali . Bħala effett sekondarju, f'ambjenti li jappoġġjaw numri standard ta 'magic Unix, din l-għażla tistabbilixxi wkoll in-numru magic tal-fajl tal-output għal "OMAGIC". Jekk din l-għażla mhix speċifikata, jiġi prodott file assolut. Meta tgħaqqad il-programmi C + +, din l-għażla ma ssolvix ir-referenzi għall-kostrutturi; Biex tagħmel dan, uża -Ur .

Meta fajl ta 'input ma jkollux l-istess format bħall-fajl tal-output, ir-rabta parzjali hija sostnuta biss jekk dak il-fajl ta' input ma fihx rilokazzjonijiet. Formati ta 'produzzjoni differenti jista' jkollhom aktar restrizzjonijiet; pereżempju xi formati bbażati fuq "a.out" ma jsostnux irbit parzjali ma 'fajls ta' input f'formati oħra.

Din l-għażla tagħmel l-istess ħaġa bħal -i .

-R isem tal-file

--just-symbols = filename

Aqra l-ismijiet tas-simboli u l-indirizzi tagħhom mill- isem tal- fajl , iżda ma jirrilokawhiex jew inkludih fl-output. Dan jippermetti li l-fajl tal-output tiegħek jirreferi simbolikament għal postijiet assoluti ta 'memorja definiti fi programmi oħra. Tista 'tuża din l-għażla aktar minn darba.

Għal kompatibilità ma 'konnessuri ELF oħra, jekk l-għażla -R hija segwita minn isem tad-direttorju, minflok isem ta' fajl, hija trattata bħala l-għażla -path .

-s

- neħħi kollox

Oħroġ l-informazzjoni kollha tas-simbolu mill-fajl tal-ħruġ.

-S

- strap-debug

Oħroġ l-informazzjoni tas-simbolu tad-debugger (iżda mhux is-simboli kollha) mill-fajl tal-output.

-t

- traċċa

Stampa l-ismijiet tal-fajls tad-dħul kif ld tipproċessahom.

-T fajl ta 'l-iskripts

--script = fajl ta 'kitba

Uża scriptfile bħala l-iskrittura linker. Din l-iskrittura tissostitwixxi l-iskrittura tal-linker default default (minflok ma żżid magħha), għalhekk il- file tal-kmand għandu jispeċifika dak kollu meħtieġ biex jiddeskrivi l-fajl tal-output. Jekk il- fajl ta 'l-iskripts ma jeżistix fid-direttorju kurrenti, "ld" jistennah fid-direttorji speċifikati minn xi għażliet L preċedenti. L-għażliet multipli- T jakkumulaw.

-u simbolu

- sinforizzat = simbolu

Is- simbolu tal- forza għandu jiddaħħal fil-fajl tal-ħruġ bħala simbolu mhux definit. Tagħmel dan jista ', per eżempju, iwassal għal konnessjoni ta' moduli addizzjonali minn libreriji standard. -u jista 'jiġi ripetut b'argumenti ta' għażla differenti biex jidħol simboli addizzjonali mhux definiti. Din l-għażla hija ekwivalenti għall-kmand tal-iskrittura tal-linker "ESTERN".

-Ur

Għal xi ħaġa oħra għajr il-programmi C + +, din l-għażla hija ekwivalenti għal -r : hija tiġġenera produzzjoni li tista 'tiġi rilokata --- jiġifieri, fajl ta' output li jista 'minnu jservi bħala input għal ld . Meta torbot programmi C + +, -Ur ma ssolvi r-referenzi għall-kostrutturi, b'differenza -r . Ma jaħdimx għall-użu -Ur fuq fajls li huma stess kienu marbuta ma ' -Ur ; ladarba tinbena t-tabella tal-kostruttur, ma tistax tiżdied magħha. Uża -Ur biss għall-aħħar konnessjoni parzjali, u -r għall-oħrajn.

- tunnellata [= TAQSIMA ]

Oħloq sezzjoni ta 'produzzjoni separata għal kull sezzjoni ta' input li taqbel mat- TAQSIMA , jew jekk l-argument SEKONDARI tal-wildcard fakultattiv huwa nieqes, għal kull sezzjoni ta 'input orfni. Sezzjoni orfni hija waħda mhux imsemmija speċifikament f'skritt linker. Tista 'tuża din l-għażla diversi drabi fuq il-linja tal-kmand; Tipprevjeni l-għaqda normali tas-sezzjonijiet ta 'l-input bl-istess isem, assenjazzjonijiet ta' sezzjoni ta 'produzzjoni li jmorru lil hinn minn skrittura ta' linker.

-v

--verżjoni

-V

Uri n-numru tal-verżjoni għal ld . L-għażla -V telenka wkoll l-emulazzjonijiet appoġġjati.

-x

- tiskopri kollox

Ħassar is-simboli lokali kollha.

-X

--diskard-lokal

Ħassar is-simboli lokali temporanji kollha. Għall-biċċa l-kbira tal-miri, dan huwa s-simboli lokali kollha li isimhom jibda b'L .

- u simbolu

--trace-symbol = simbolu

Stampa l-isem ta 'kull fajl marbut li fih jidher simbolu . Din l-għażla tista 'tingħata kull numru ta' drabi. F'ħafna sistemi huwa neċessarju li tiddaħħal preċedent.

Din l-għażla hija utli meta jkollok simbolu mhux definit fir-rabta tiegħek imma ma tafx minn fejn ġejja r-referenza.

-I triq

Żid it- triq għar-rotta ta 'tfittxija tal-librerija default Din l-għażla teżisti għall-kompatibilità ta 'Solaris.

-z keyword

Il-kliem kjavi rikonoxxuti huma "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "issa", "oriġini", "combreloc", "nocombreloc" u "nocopyreloc ". Il-kliem kjavi l-oħra huma injorati għall-kompatibilità ta 'Solaris. "initfirst" jimmarka l-oġġett li għandu jiġi inizjalizzat l-ewwel waqt ir-runt qabel kwalunkwe oġġett ieħor. "interpose" timmarka l-oġġett li tabella tas-simbolu tagħha tinterponi qabel is-simboli kollha iżda l-executable primarju. "loadfltr" jimmarka l-oġġett li l-filtees tiegħu jiġu pproċessati immedjatament waqt il-ħin. "nodefaultlib" jimmarka l-oġġett li t-tfittxija għal dipendenzi ta ' kwalunkwe mogħdija ta 'tfittxija għal librerija default. "nodelete" timmarka li l-oġġett m'għandux jinħatt waqt il-ħin. "nodlopen" jimmarka l-oġġett mhux disponibbli għal "dopen". "nodump" timmarka li l-oġġett ma jistax jiġi ddampjat minn "dldump". "issa" jimmarka l-oġġett bil-vinkolatura ta 'ħin mhux għażżien. "oriġini" jimmarka l-oġġett jista' jkun fih $ ORIĠINI. "defs" ma tippermettix simboli mhux definiti. "muldefs" jippermetti definizzjonijiet multipli. "combreloc" tgħaqqad sezzjonijiet ta 'rilokazzjoni multipli u ttaffihom biex jagħmlu simbolu dinamiku li jneħħu caching possibbli.

"nocombreloc" jiddiżattiva t-taqsimiet multipli tar-rilokazzjoni li jikkombinaw. "nocopyreloc" jiddiżattiva l-produzzjoni ta 'kopoks tal-kopja.

- ( arkivji -)

--Start-archives tal-grupp - fuq il-grupp

L- arkivji għandhom ikunu lista ta ' fajls ta' arkivju . Jistgħu jkunu jew ismijiet espliċiti tal-fajl, jew -l għażliet.

L-arkivji speċifikati huma mfittxija ripetutament sakemm ma jinħolqu ebda referenzi ġodda mhux definiti. Normalment, arkivju huwa mfittex biss darba fl-ordni li huwa speċifikat fuq il-linja tal-kmand. Jekk simbolu f'dak l-arkivju huwa meħtieġ biex isolvi simbolu mhux definit li ssemma minn oġġett f'arkivju li jidher aktar tard fuq il-linja tal-kmand, ir-rabta ma tkunx tista 'ssolvi dik ir-referenza. Billi jiġbru l-arkivji, dawn kollha jiġu mfittxija ripetutament sakemm jiġu solvuti r-referenzi kollha possibbli.

L-użu ta 'din l-għażla għandu spiża ta' prestazzjoni sinifikanti. L-aħjar huwa li tużah biss meta jkun hemm referenzi ċirkolari inevitabbli bejn żewġ arkivji jew aktar.

- aċċetta-mhux magħruf-input-arch

--no-accept-unknown-input-arch

Jgħid lil min jgħaqqad biex jaċċetta fajls ta 'input li l-arkitettura tagħhom ma tistax tiġi rikonoxxuta. Is-suppożizzjoni hija li l-utent jaf x'qed jagħmlu u deliberatament irid jorbot f'dawn il-fajls ta 'input mhux magħrufa. Din kienet l-imġiba awtomatika tar-rabta, qabel ir-rilaxx 2.14. L-imġieba inadegwata mir-rilaxx 2.14 'il quddiem hija li tirrifjuta dawk il-fajls ta' input, u għalhekk ġiet miżjuda l-għażla aċċettata-mhux magħrufa-input-arch biex terġa 'ġġib l-imġieba antika.

- kelma prinċipali ta ' asserzjoni

Din l-għażla hija injorata għall- kompatibilità SunOS .

-Bynamic

-dy

-call_shared

Rabta ma 'libreriji dinamiċi. Dan huwa biss sinifikanti fuq il-pjattaformi li għalihom huma appoġġjati l- libreriji kondiviżi . Din l-għażla normalment hija l-inadempjenza fuq dawn il-pjattaformi. Il-varjanti differenti ta 'din l-għażla huma għall-kompatibilità ma' diversi sistemi. Tista 'tuża din l-opzjoni diversi drabi fuq il-linja tal-kmand: taffettwa t-tfittxija tal-librerija għal -l għażliet li jsegwuha.

-Bgrupp

Stabbilixxi l-bandiera "DF_1_GROUP" fl-entrata "DT_FLAGS_1" fit-taqsima dinamika. Dan jikkawża l-linker runtime biex jimmaniġġja investigazzjonijiet f'dan l-oġġett u d-dipendenzi tiegħu li għandhom jitwettqu biss ġewwa l-grupp. - mhux definit mhux impliċitu. Din l-għażla għandha sinifikat biss fuq pjattaformi tal-ELF li jappoġġjaw libreriji kondiviżi .

-Static

-dn

-ru ma tħallix

-static

M'għandekx link kontra libreriji maqsuma. Dan huwa biss sinifikanti fuq il-pjattaformi li għalihom huma appoġġjati l-libreriji kondiviżi. Il-varjanti differenti ta 'din l-għażla huma għall-kompatibilità ma' diversi sistemi. Tista 'tuża din l-opzjoni diversi drabi fuq il-linja tal-kmand: taffettwa t-tfittxija tal-librerija għal -l għażliet li jsegwuha.

-Bsymbolic

Meta tinħoloq librerija maqsuma, torbot referenzi għal simboli globali mad-definizzjoni fil-librerija maqsuma, jekk ikun hemm. Normalment, huwa possibbli għal programm marbut ma 'librerija kondiviża biex jissupera d-definizzjoni fil-librerija maqsuma. Din l-għażla hija biss ta 'sinifikat fuq ELFplatforms li jappoġġjaw libreriji kondiviżi.

- sezzjonijiet ta 'verifika

- mingħajr sezzjonijiet ta 'kontroll

Jitlob lill-kollegatur biex ma jiċċekkjax l-indirizzi tas-sezzjoni wara li jkunu ġew assenjati biex jaraw jekk hemmx duplikazzjonijiet. Normalment il-linker se jwettaq din il-verifika, u jekk isib xi duplikazzjoni, jipproduċi messaġġi ta 'żball xierqa. Il-linker jaf, u jagħmel konċessjonijiet għal taqsimiet f'postijiet. L-imġiba awtomatika tista 'terġa' tiġi stabbilita bl-użu tas-swiċċ tal-linja tal-kmand - sezzjonijiet ta 'kontroll .

--recref

Daħħal tabella ta 'referenza inkroċjata. Jekk qed jinħoloq fajl tal-mappa tal-linker, it-tabella ta 'referenza inkroċjata hija stampata fil-fajl tal-mappa. Inkella, hija stampata fuq il-produzzjoni standard.

Il-format tat-tabella huwa intenzjonalment sempliċi, sabiex ikun jista 'jiġi pproċessat faċilment b'kitba jekk meħtieġ. Is-simboli huma stampati, magħżula bl-isem. Għal kull simbolu, tingħata lista ta 'ismijiet tal-fajl. Jekk is-simbolu huwa definit, l-ewwel fajl elenkat huwa l-post tad-definizzjoni. Il-bqija tal-fajls fihom referenzi għas-simbolu.

--no-define-komuni

Din l-għażla twaqqaf l-assenjazzjoni ta 'indirizzi għal simboli komuni. Il-kmand tal-kitba "INHIBIT_COMMON_ALLOCATION" għandu l-istess effett.

L- għażla --no-define-komuni tippermetti li d-deċiżjoni li jiġu assenjati l-indirizzi għas-simboli Komuni tkun separata mill-għażla tat-tip tal-fajl tal-output; inkella forzi tat-tip tal-output li ma jistgħux jiġu Reflokabbli li jassenjaw indirizzi għal simboli Komuni. L-użu ta ' -no-define-common jippermetti simboli Komuni li huma referenzjati minn librerija maqsuma biex jiġu assenjati tindirizza biss fil-programm prinċipali. Dan jelimina l-ispazju duplikat mhux użat fil-librerija kondiviża, u jipprevjeni wkoll kwalunkwe konfużjoni possibbli fuq ir-riżoluzzjoni ta 'duplikat ħażin meta jkun hemm ħafna moduli dinamiċi b'passaġġi ta' tiftix speċjalizzati għal riżoluzzjoni tas-simbolu ta 'ħin.

--defsym symbol = espressjoni

Oħloq simbolu globali fil-fajl tal-ħruġ, li fih l-indirizz assolut mogħti mill- espressjoni . Tista 'tuża din l-għażla kemm-il darba tkun meħtieġa biex tiddefinixxi simboli multipli fil-linja tal-kmand. Forma limitata ta 'aritmetika hija appoġġjata għall- espressjoni f'dan il-kuntest: tista' tagħti kostanti hexadeċimali jew l-isem ta 'simbolu eżistenti, jew uża "+" u "-" biex iżżid jew tnaqqas kostanti jew simboli hexadeċimali. Jekk għandek bżonn espressjonijiet aktar elaborati, tikkunsidra li tuża l-lingwa tal-kmand tal-linker minn kitba. Nota: m'għandu jkun hemm l-ebda spazju abjad bejn is-simbolu , is -sinjal ugwali (`` = ''), u l- espressjoni .

--demangle [= stil ]

--no-demangle

Dawn l-għażliet jikkontrollaw jekk jidentifikawx ismijiet tas-simboli f'messaġġi ta 'żball u produzzjoni oħra. Meta l-linker jingħad li jimmarka ruħu, jipprova jippreżenta l-ismijiet tas-simboli f'manjiera li tinqara: ifakkar il-linji gwida ewlenin jekk jintużaw mill-format tal-fajl tal-oġġett, u tikkonverti l-ismijiet tas-simboli mgħammra C + + f'ismijiet li jinqraw mill-utent. Kompilaturi differenti għandhom stili differenti ta 'mangling. L-argument fakultattiv dwar l-istil demangling jista 'jintuża biex jagħżel stil demanġenti adattat għall-kompilatur tiegħek. Il-linker għandu demangle default sakemm il-varjabbli ambjentali COLLECT_NO_DEMANGLE huwa stabbilit. Dawn l-għażliet jistgħu jintużaw biex jinqabeż l-inadempjenza.

- fajl li jgħaqqad dinamiku

Issettja l-isem tal-linker dinamiku. Dan huwa sinifikanti biss meta jiġġeneraw executables ELF marbuta b'mod dinamiku. Ir-rabta dinamika default hija normalment korretta; Tużax dan sakemm ma tkunx taf x'qed tagħmel.

-membedded-relocs

Din l-għażla hija biss ta 'sinifikat meta tgħaqqad il-kodiċi PIC inkorporat MIPS, iġġenerat mill-għażla -membedded-pic għall-kompilatur u l-assemblaġġ tal-GNU. Jikkawża lil min jagħmel ir-rabta biex joħloq tabella li tista 'tintuża waqt ir-runtime biex jirrilokaw kwalunkwe data li kienet statikalizzata inizjalment għall-valuri ta' l-indikatur. Ara l-kodiċi in textsuite / ld-empic għad-dettalji.

- twissijiet fatali

Ittratta t-twissijiet kollha bħala żbalji .

--force-exe-suffix

Kun żgur li fajl ta 'output ikollu suffiss exe.

Jekk fajl tal-output marbut kompletament b'suċċess ma jkollux suffiss " .exe " jew " .dll ", din l-għażla teħtieġ li l-linker jikkopja l-fajl tal-output għal wieħed mill-istess isem b'susfix ".exe". Din l-għażla hija utli meta tuża mudelli tal- Unix mhux modifikati fuq ospitanti ta 'Microsoft Windows, peress li xi verżjonijiet tal- Windows ma jaħdmux immaġini sakemm ma jispiċċax suffiss ".exe".

--no-gc-sections

--gc-taqsimiet

Jippermettu ġbir ta 'żibel ta' sezzjonijiet ta 'input mhux użati. Huwa injorat fuq miri li ma jappoġġjawx din l-għażla. Din l-għażla mhijiex kompatibbli ma ' -r , u lanqas ma għandha tintuża b'konnessjoni dinamika. L-imġieba inadempjenti (li ma twettaqx dan il -ġbir taż - żibel ) tista 'tiġi rrestawrata billi tispeċifika --no-gc-sections fuq il-linja tal-kmand.

--help

Stampa sommarju tal-għażliet tal-linja tal-kmand fuq il-produzzjoni u l-ħruġ standard.

--target-help

Stampa sommarju tal-għażliet speċifiċi kollha tal-mira fuq il-produzzjoni u l-ħruġ standard.

-Map mapfile

Stampa mappa tal-link għall-file mapfile . Ara d-deskrizzjoni ta 'l-għażla -M , hawn fuq.

- in-nuqqas ta 'memorja ta' żamma

Ld normalment jottimizza l-użu tal- memorja tal- veloċità fuq il-caching tat-tabelli tas-simboli tal-fajls tad-dħul fil-memorja. Din l-għażla jgħidlek biex minflok ittejjeb l-użu tal-memorja, billi terġa 'taqra t-tabelli tas-simboli kif meħtieġ. Dan jista 'jkun meħtieġ jekk ld imur mill-ispazju tal-memorja filwaqt li jgħaqqad eżekutibbli kbir.

- mhux definit

-z defs

Normalment meta tinħoloq librerija kondiviża mhux simbolika, is-simboli mhux definiti huma permessi u jitħallew jiġu solvuti mill-loader ta 'runtime. Dawn l-għażliet ma jippermettux simboli mhux definiti bħal dawn.

- id-definizzjoni multipla ta 'kulħadd

-z muldefs

Normalment meta simbolu huwa definit bosta drabi, ir-rabta se tirrapporta żball fatali. Dawn l-għażliet jippermettu definizzjonijiet multipli u tintuża l-ewwel definizzjoni.

--allow-shlib-undefined

Ħalli simboli mhux definiti f'oġġetti maqsuma anki meta - mhux definiti huma stabbiliti. Ir-riżultat nett se jkun li simboli mhux definiti f'oġġetti regolari xorta se jagħtu bidu għal żball, iżda simboli mhux definiti f'oġġetti maqsumin se jiġu injorati. L-implimentazzjoni ta 'no_undefined tagħmel is-suppożizzjoni li l-linker ta' runtime se jfixkel fuq simboli mhux definiti. Madankollu hemm mill-inqas sistema waħda (BeOS) fejn is-simboli mhux definiti fil-libreriji maqsuma huma normali peress li l-qalba twaħħalhom fil-ħin tat-tagħbija biex tagħżel liema funzjoni hija l-aktar xierqa għall-arkitettura attwali. IE tagħżel dinamikament funzjoni ta 'memset xierqa. Apparentement huwa normali wkoll li l-libreriji komuni ta 'HPPA jkollhom simboli mhux definiti.

--no-undefined-verżjoni

Normalment meta simbolu jkollu verżjoni mhux definita, il-linker jinjoraha. Din l-għażla ma tippermettix simboli b'verżjoni mhux definita u minflok tinħareġ żball fatali.

- mhux-twissija-nuqqas ta 'qbil

Normalment ld se tagħti żball jekk tipprova tgħaqqad flimkien fajls ta 'input li mhumiex komuni għal xi raġuni, forsi għax ġew ikkumpilati għal proċessuri differenti jew għal sforsi differenti. Din l-għażla tgħidlu li għandha silenzjuż tippermetti dawn l-iżbalji possibbli. Din l-għażla għandha tintuża biss b'attenzjoni, f'każijiet meta tkun ħadt xi azzjoni speċjali li tiżgura li l-iżbalji tar-rabta mhumiex xierqa.

--no-whole-archive

Itfi l-effett ta 'l - għażla ta' l- arkivju sħiħ għal fajls ta 'arkivjar sussegwenti.

--noinhibit-exec

Żomm il-fajl tal-output eżegwibbli kull meta jkun għadu jista 'jintuża. Normalment, ir-rabta ma tipproduċix fajl tal-ħruġ jekk jiltaqa 'ma' żbalji waqt il-proċess ta 'rabta; joħroġ mingħajr ma jikteb fajl tal-ħruġ meta joħroġ xi żball.

-nostdlib

Id-direttorji tal-librerija tat-tiftix biss speċifikament speċifikati fuq il-linja tal-kmand Id-direttorji tal-librerija speċifikati fis-skripts tal-linker (inklużi skripts tal-linker speċifikati fuq il-linja tal-kmand) huma injorati.

- format ta ' output ta' format

Jista 'jkun konfigurat biex isostni aktar minn tip wieħed ta' fajl ta 'oġġett. Jekk il- ld tiegħek huwa kkonfigurat b'dan il-mod, tista 'tuża l-għażla --format biex tispeċifika l-format binarju għall-fajl tal-oġġett tal-output. Anke meta ld tkun konfigurat biex tappoġġja formati ta 'oġġett alternattivi, normalment m'għandekx bżonn tispeċifika dan, peress li l-konfigurazzjoni għandha tkun ikkonfigurata biex tipproduċi format tal-output awtomatiku l-aktar format tas-soltu fuq kull magna. Il-format tal-produzzjoni huwa sinjal ta 'test, l-isem ta' format partikolari appoġġjat mill-libreriji tal-BFD. (Tista 'telenka l-formats binarji disponibbli b'objdump -i .) Il-kmand tal-iskritt "OUTPUT_FORMAT" jista' wkoll jispeċifika l-format tal-produzzjoni, iżda din l-għażla tegħlebha.

-qmagic

Din l-għażla hija injorata għall-kompatibilità Linux.

-Qy

Din l-għażla hija injorata għall-kompatibilità SVR4.

--irrilassa

Għażla b'effetti dipendenti mill-magna. Din l-għażla hija appoġġata biss fuq ftit miri.

Fuq xi pjattaformi, l-għażla -relax twettaq ottimizzazzjonijiet globali li jsiru possibbli meta r-rabta tirrisolvi l-indirizzar fil-programm, bħal modi ta 'indirizz illaxkar u sintesi ta' istruzzjonijiet ġodda fil-fajl tal-oġġett tal-output.

F'xi pjattaformi dawn l-ottimizzazzjonijiet globali tal-ħin tal-kollegament jistgħu jagħmlu impossibbli l- debugging simboliku tal-eżekutibbli riżultanti. Dan huwa magħruf bħala l-każ għall-familja ta 'proċessuri Matsushita MN10200 u MN10300.

Fuq pjattaformi fejn dan mhux appoġġjat, --relax huwa aċċettat, iżda injorat.

- Retain-symbols-file filename

Żomm biss is-simboli elenkati fil-file filename , billi tirtira l-oħrajn kollha. isem tal-fajl huwa sempliċement fajl ċatt, b'isem simbolu wieħed għal kull linja. Din l-għażla hija speċjalment utli f'ambjenti (bħal VxWorks) fejn tabella ta 'simbolu globali kbir hija akkumulata gradwalment, biex tkun ikkonservata l-memorja tal-ħin eżatt.

- is-simboli tar-reżistenti-fajl ma jarmix simboli mhux definiti, jew simboli meħtieġa għar-rilokazzjonijiet.

Inti tista 'biss tispeċifika - retain-symbols-file darba fil-linja tal-kmand. Jelimina -s u -S .

-rpath dir

Żid direttorju fit-triq ta 'tfittxija tal-librerija ta' runtime. Dan jintuża meta jgħaqqad ELFexecutable ma 'oġġetti maqsuma. L-argumenti kollha- rpath huma concatenated u mgħoddija lill-linker runtime, li jużahom biex jillokalizza oġġetti maqsuma f'ħin ta 'runtime. L-għażla ta '" rpath" tintuża wkoll meta jkunu lokalizzati oġġetti maqsuma li huma meħtieġa minn oġġetti maqsuma espliċitament inklużi fil-link; ara d-deskrizzjoni ta 'l - għażla tar- rpath-link . Jekk -rpath ma jintużax meta jgħaqqad eżekutibbli ELF, il-kontenut tal-varjabbli ta 'l-ambjent "LD_RUN_PATH" se jintuża jekk ikun definit.

L-għażla -path tista 'tintuża wkoll fuq SunOS. B'mod default, fuq SunOS, il-linker jiffurmaw garża ta 'tiftix ta' darba mill-għażliet kollha-L li jingħata. Jekk tintuża għażla -rpath , il-mogħdija tat-tiftix ta 'ħin ta' runt se tkun iffurmata esklussivament billi tuża l-għażliet -rpath , u tinjora l-għażliet L. Dan jista 'jkun utli meta tuża gcc, li żżid ħafna għażliet L li jistgħu jkunu fuq filesystems immuntati fuq NFS.

Għal kompatibilità ma 'konnessuri ELF oħra, jekk l-għażla -R hija segwita minn isem tad-direttorju, minflok isem ta' fajl, hija trattata bħala l-għażla -path .

-rpath-link DIR

Meta tuża ELF jew SunOS, librerija maqsuma tista 'teħtieġ ieħor. Dan jiġri meta rabta "ld-mqabbda" tinkludi librerija maqsuma bħala wieħed mill-fajls tad-dħul.

Meta l-kollegatur jiltaqa 'ma' dipendenza bħal din meta jagħmel link mhux maqsum u li ma jistax jiġi rilokat, awtomatikament jipprova jsib il-librerija maqsuma meħtieġa u inkludiha fil-link, jekk ma jkunx inkluż espliċitament. F'każ bħal dan, l - għażla -rpath-link tispeċifika l-ewwel sett ta 'direttorji biex tfittex. L - għażla tar-rath-link tista 'tispeċifika sekwenza ta' ismijiet tad-direttorju jew billi tispeċifika lista ta 'ismijiet separati minn kolons, jew billi tidher diversi drabi.

Din l-għażla għandha tintuża b'kawtela minħabba li tegħleb it-triq tat-tiftix li setgħet ġiet ikkumpilata ħażin f'librerija maqsuma. F'każ bħal dan huwa possibbli li tintuża mhux intenzjonalment triq ta 'tfittxija differenti minn dak li jagħmel ir-runtime linker.

Il-linker juża l-mogħdijiet tat-tiftix li ġejjin biex jillokalizza l-libreriji kondiviżi meħtieġa.

1.

Kwalunkwe direttorji speċifikati mill - għażliet -rpath-link .

2.

Kull direttur speċifikat minn għażliet -path . Id-differenza bejn -rpath u -rpath-link hija li d-direttorji speċifikati mill-għażliet rpath huma inklużi fl-eżekutibbli u użati f'ħin reali, filwaqt li l - għażla rpath-link hija effettiva biss fil-ħin tal-kollegament. Huwa għall-linker indiġeni biss.

3.

Fuq sistema ELF, jekk l- għażliet -rpath u "rpath-link" ma ntużawx, fittex il-kontenut tal-varjabbli ambjentali "LD_RUN_PATH". Huwa għall-linker indiġeni biss.

4.

Fuq SunOS, jekk l-għażla -rpath ma ntużatx, fittex kwalunkwe direttorji speċifikati bl-użu ta 'għażliet L.

5.

Għal linker indiġeni, il-kontenut tal-varjabbli ta 'l-ambjent "LD_LIBRARY_PATH".

6.

Għal konnessur ELF indiġeni, id-direttorji f '"DT_RUNPATH" jew "DT_RPATH" ta' librerija maqsuma huma mfittxija għal libreriji maqsuma meħtieġa minnha. L-annotazzjonijiet "DT_RPATH" huma injorati jekk jeżistu entrati "DT_RUNPATH".

7.

Id-direttorji default, normalment / lib u / usr / lib .

8.

Għal linker indiġeni fuq sistema ELF, jekk il-fajl /etc/ld.so.conf jeżisti, il-lista ta 'direttorji misjuba f'dak il-fajl.

Jekk il-librerija maqsuma meħtieġa ma tinstabx, il-linker se joħroġ twissija u jkompli bir-rabta.

-ħareġ

-Bshareable

Oħloq librerija maqsuma. Dan bħalissa huwa appoġġjat biss fuq il-pjattaformi ELF, XCOFF u SunOS. Fuq SunOS, ir-rabta awtomatikament toħloq librerija kondiviża jekk l-għażla -e ma tintużax u hemm simboli mhux definiti fil-link.

--xort-komuni

Din l-għażla jgħidlek biex issolvi s-simboli komuni skont id-daqs meta tqiegħdhom fis-sezzjonijiet tal-output xierqa. L-ewwel tiġi l-simboli tal-byte waħda, imbagħad it-tnejn byte, imbagħad l-erba 'bytes, u mbagħad kull ħaġa oħra. Dan biex jiġu evitati lakuni bejn simboli minħabba restrizzjonijiet ta 'allinjament.

- fill-by-file [ size ]

Simili għal -split-by-reloc iżda toħloq sezzjoni ta 'produzzjoni ġdida għal kull fajl tad-dħul meta tintlaħaq id-daqs . daqsijiet tad-daqs ta '1 jekk mhux mogħtija.

- split-by-reloc [ għadd ]

Jipprova joħloq taqsimiet żejda fil-fajl tal-output sabiex l-ebda sezzjoni tal-output waħda fil-fajl ma jkun fiha aktar minn għadd ta ' rilokazzjonijiet. Dan huwa utli meta tkun qed tiġġenera fajls enormi li jistgħu jiġu rilokati biex jitniżżlu f'ċerti kernels f'ħin reali bil-format tal-fajl tal-objett COFF; peress li COFFcannot jirrappreżenta iktar minn 65535 rilokazzjoni f'taqsima waħda. Innota li dan ma jaħdimx b'formati tal-fajl tal-oġġett li ma jappoġġjawx taqsimiet arbitrarji. Il-linker mhux se jaqsam is-sezzjonijiet ta 'input individwali għar-ridistribuzzjoni, għalhekk jekk sezzjoni ta' input waħda fiha aktar minn għadd ta ' rilokazzjonijiet, sezzjoni ta' produzzjoni waħda jkun fiha ħafna rilokazzjonijiet. l-għadd in- nuqqasijiet għal valur ta '32,768.

--stats

Ikkalkula u turi statistiċi dwar l-operat tar-rabta, bħall-ħin ta 'eżekuzzjoni u l-użu tal-memorja.

- format tradizzjonali

Għal xi miri, l-output ta ' ld huwa differenti f'xi modi mill-produzzjoni ta' xi linker eżistenti. Dan it-tibdil jitlob ld biex minflok juża l-format tradizzjonali.

Pereżempju, fuq SunOS, ld jgħaqqad daħliet idduplikati fit-tabella tas-sekwenza tas-simboli. Dan jista 'jnaqqas id-daqs ta' fajl ta 'produzzjoni b'informazzjoni sħiħa ta' debugging b'aktar minn 30 fil-mija. Sfortunatament, il-programm SunOS "dbx" ma jistax jaqra l-programm li jirriżulta ("gdb" m'għandux problemi). L- iswiċċ tal-format tradizzjonali jgħidlekx li ma jgħaqqadx daħliet idduplikati.

--section-start sectionname = org

Sib sezzjoni fil- fajl tal - ħruġ fl-indirizz assolut mogħti minn org . Tista 'tuża din l-għażla kemm-il darba tkun meħtieġa biex issib sezzjonijiet multipli fil-linja tal-kmand. org għandu jkun numru sħiħ hexadeċimali; Għal kompatibilità ma 'linkers oħra, tista' tħalli barra l- 0x li jwasslu ġeneralment assoċjati ma 'valuri hexadeċimali. Nota: M'għandu jkun hemm l-ebda spazju abjad bejn is- sezzjoni isem , is-sinjal ugwali (`` = ''), u org .

-Tbss org

-Tdata org

-Txt org

Uża org bħala l-indirizz tal-bidu għal --- rispettivament --- "bss", "data", jew it-taqsima "test" tal-fajl tal-output. org għandu jkun numru sħiħ hexadeċimali; Għal kompatibilità ma 'linkers oħra, tista' tħalli barra l- 0x li jwasslu ġeneralment assoċjati ma 'valuri hexadeċimali.

- dll-verbose

--verbose

Uri n-numru tal-verżjoni għal ld u elenka l-emulazzjonijiet tar-rabta appoġġjati. Stampa li l-fajls tad-dħul jistgħu u ma jistgħux jinfetħu. Uri l-iskrittura tar-rabta li qed tintuża mill-linker.

--version-script = version-scriptfile

Speċifika l-isem ta 'skrittura tal-verżjoni għar-rabta. Dan tipikament jintuża meta jinħolqu libreriji kondiviżi biex tiġi speċifikata informazzjoni addizzjonali dwar il-verżjoni ereditarja għal-librerija li qed tinħoloq. Din l-għażla għandha sinifikat biss fuq pjattaformi tal-ELF li jappoġġjaw libreriji kondiviżi.

-war-komuni

Iwissi meta simbolu komuni jiġi kkombinat ma 'simbolu komuni ieħor jew b'definizzjoni ta' simbolu. Unix linkers jippermettu din il-prattika kemmxejn sloppy, iżda linkers fuq xi sistemi operattivi oħra ma. Din l-għażla tippermettilek issib problemi potenzjali milli tikkombina simboli globali. Sfortunatament, uħud mill-libreriji C jużaw din il-prattika, sabiex tista 'tikseb xi twissijiet dwar simboli fil-libreriji kif ukoll fil-programmi tiegħek.

Hemm tliet tipi ta 'simboli globali, murija hawnhekk minn eżempji C:

int i = 1;

Definizzjoni, li tmur fit-taqsima tad-data inizzjalizzata tal-fajl tal-output.

external int i;

Referenza mhux definita, li ma tallokax l-ispazju. Għandu jkun hemm definizzjoni jew simbolu komuni għall-varjabbli x'imkien.

int i;

Simbolu komuni. Jekk hemm biss (simbolu wieħed jew aktar) ta 'simboli għal varjabbli, imur fiż-żona tad-data mhux inizjalata tal-fajl tal-output. Il-linker jgħaqqad simboli komuni multipli għall-istess varjabbli f'simbolu wieħed. Jekk huma ta 'daqsijiet differenti, jagħżel l-ikbar daqs. Ir-rabta twassal simbolu komuni f'dikjarazzjoni, jekk ikun hemm definizzjoni tal-istess varjabbli.

L - għażla komuni-onn tista 'tipproduċi ħames tipi ta' twissijiet. Kull twissija tikkonsisti f'numru ta 'linji: l-ewwel jiddeskrivi s-simbolu li nstab biss, u t-tieni jiddeskrivi s-simbolu preċedenti li ltaqa' magħha bl-istess isem. Wieħed jew iż-żewġ simboli se jkun simbolu komuni.

1.

It-tibdil ta 'simbolu komuni f'referenza, għax diġà hemm definizzjoni għas-simbolu.

(
): twissija: komuni ta '"simbolu>" mibdula b'definizzjoni (
): twissija: definita hawn

2.

Iddawnlowdja simbolu komuni f'referenza, minħabba li tiffaċċja definizzjoni aktar tard għas-simbolu. Dan huwa l-istess bħall-każ preċedenti, ħlief li s-simboli jinstabu f'ordni differenti.

(
): twissija: definizzjoni ta '"simbolu>" prevalenti komuni (): twissija: komuni hija hawnhekk

3.

Inkabbru simbolu komuni b'simbolu komuni ta 'l-istess daqs preċedenti.

(
): twissija: komuni multipla ta '' ' (): twissija: komuni ta' qabel hija hawnhekk

4.

Tgħaqqad simbolu komuni b'simbolu komuni komuni ta 'qabel.

(
): twissija: komuni ta '"simbolu>" mibdula minn komuni akbar (): twissija: komuni akbar hawn

5.

Tgħaqqad simbolu komuni b'simbolu komuni iżgħar ta 'qabel. Dan huwa l-istess bħall-każ preċedenti, ħlief li s-simboli jinstabu f'ordni differenti.

(): twissija: komuni ta '"simbolu>" li tipprevali iżjed komuni (): twissija: komuni iżgħar hawn

- il-kostrutturi ta 'wara

Iwissi jekk jintużawx xi kostrutturi globali. Dan huwa utli biss għal ftit formati ta 'fajls ta' oġġett. Għal formats bħal COFF jew ELF, ir-rabta ma tistax tiskopri l-użu ta 'kostrutturi globali.

-warn-multiple-gp

Iwissi jekk il-valuri multipli tal-indikatur globali humiex meħtieġa fil- fajl tal - output . Dan huwa sinifikanti biss għal ċerti proċessuri, bħall-Alpha. Speċifikament, xi proċessuri jpoġġu kostanti ta 'valur għoli f'sezzjoni speċjali. Reġistru speċjali (il-pointer globali) jindika fin-nofs ta 'din it-taqsima, sabiex il-kostanti jistgħu jitgħabbew b'mod effiċjenti permezz ta' modalità ta 'indirizzi relattiva għar-reġistru bażi. Peress li t-tpaċija fil-modalità relattiva għar-reġistru bażi hija ffissata u relattivament żgħira (eż. 16 bits), dan jillimita d-daqs massimu tal-pool kostanti. Għalhekk, fi programmi kbar, ħafna drabi huwa meħtieġ li jintużaw valuri multipli tal-indikaturi globali sabiex ikunu jistgħu jindirizzaw il-kostanti kollha possibbli. Din l-għażla tikkawża twissija li tinħareġ kull meta sseħħ dan il-każ.

- darba kull darba

Iwissu biss darba għal kull simbolu mhux definit, aktar milli darba għal kull modulu li jirreferi għalih.

--warn-section-align

Iwissi jekk l-indirizz tas-sezzjoni tal-output jinbidel minħabba l-allinjament. Tipikament, l-allinjament ikun stabbilit minn sezzjoni ta 'input. L-indirizz se jinbidel biss jekk ma jkunx speċifikat b'mod espliċitu; jiġifieri, jekk il-kmand "SEZZJONIJIET" ma jispeċifikax l-indirizz tal-bidu għat-taqsima.

- arkivju sħiħ

Għal kull arkivju msemmi fuq il-linja tal-kmand wara l - għażla ta 'l- arkivju-sħiħ , tinkludi kull fajl ta' l-oġġett fl-arkivju fil-link, aktar milli tfittex l-arkivju għall-fajls ta 'l-oġġett meħtieġa. Dan normalment jintuża biex iddawwar fajl ta 'arkivju f'librerija maqsuma, u jġiegħel kull oġġett jiġi inkluż fil-librerija maqsuma li tirriżulta. Din l-għażla tista 'tintuża aktar minn darba.

Żewġ noti meta tuża din l-għażla minn gcc: L-ewwelnett, gcc ma jafx dwar din l-għażla, għalhekk għandek tuża -Wl, -whole-archive . It-tieni, ma ninsewx li tuża -Wl, -no-whole-archive wara l-lista ta 'arkivji tiegħek, għaliex gcc żżid il-lista ta' arkivji tagħha mal-link tiegħek u tista 'ma tridx din il-bandiera taffettwa dawk ukoll.

- simbolu tal- wrap

Uża funzjoni tat-tgeżwir għas- simbolu . Kwalunkwe referenza mhux definita għas- simbolu tiġi solvuta għal "__ wrap_symbol". Kwalunkwe referenza mhux definita għal "__real_simbolu" se tissolva għas- simbolu .

Dan jista 'jintuża biex jipprovdi tgeżwir għal funzjoni tas-sistema. Il-funzjoni tat-tgeżwir għandha tissejjaħ "__wrap_symbol". Jekk tkun tixtieq titlob il-funzjoni tas-sistema, għandha titlob "__ reali_simbolu".

Hawn hu eżempju trivjali:

vojt * __wrap_malloc (int c) {printf ("malloc imsejjaħ b '% ld \ n", c); ritorn __real_malloc (c); }

Jekk tgħaqqad kodiċi ieħor ma 'dan il-fajl billi tuża - wrap malloc , allura s-sejħiet kollha għal "malloc" sejrin imsejħa l-funzjoni "__wrap_malloc" minflok. Is-sejħa għal "__real_malloc" fi "__wrap_malloc" sejra titlob il-funzjoni reali "malloc".

Inti tista 'tixtieq tipprovdi wkoll funzjoni "__real_malloc", sabiex ir-rabtiet mingħajr l-għażla --wrap se jirnexxu. Jekk tagħmel dan, m'għandekx tpoġġi d-definizzjoni ta '"__ real_malloc" fl-istess fajl bħal "__wrap_malloc"; jekk tagħmel hekk, l-assemblatur jista 'jsolvi s-sejħa qabel ma l-linker ikollu ċ-ċans li jdawwarha għal "malloc".

--ġeniċi ġodda-dtags

--disable-new-dtags

Dan il-linker jista 'joħloq it-tikketti dinamiċi ġodda fl-ELF. Imma s-sistemi ELF anzjani ma jistgħux jifhmuhom. Jekk tispeċifika --enable-new-dtags , it-tikketti dinamiċi jinħolqu kif meħtieġ. Jekk tispeċifika --disable-new-dtags , l-ebda tikketti dinamiċi ġodda ma jkunu maħluqa. B'mod awtomatiku, it-tikketti dinamiċi ġodda mhumiex maħluqa. Innota li dawk l-għażliet huma disponibbli biss għal sistemi tal-OE.

Ir-rabta PE i386 tappoġġa l-għażla mqassma , li tikkawża l-produzzjoni bħala librerija marbuta b'mod dinamiku (DLL) minflok eżekutibbli normali. Għandek issemmi l-output "* .dll" meta tuża din l-għażla. Barra minn hekk, ir-rabta jappoġġja bis-sħiħ il-fajls standard "* .def", li jistgħu jiġu speċifikati fuq il-linja tal-kmand tal-linker bħal fajl ta 'oġġett (fil-fatt, għandu jippreċedi arkivji li jesporta simboli minn, bħal fajl ta 'oġġett normali).

Minbarra l-għażliet komuni għall-miri kollha, il-konnessur PE i386 jappoġġa għażliet addizzjonali tal-linja tal-kmand li huma speċifiċi għall-mira tal-PE tal-i386. L-għażliet li jieħdu l-valuri jistgħu jiġu separati mill-valuri tagħhom jew permezz ta 'spazju jew sinjal ugwali.

--add-stdcall-alias

Jekk tingħata, is-simboli b'sofsu stdcall (@ nn ) se jiġu esportati kif-hu u wkoll bis-suffiss imqaxxar.

- fajl ta ' fajl ta' bażi

Uża l- fajl bħala l-isem ta 'fajl li fih tiffranka l-indirizzi bażi tar-rilokazzjonijiet kollha meħtieġa biex tiġġenera DLLs bid- dlltool .

--dll

Oħloq DLL minflok eżekutibbli regolari. Tista 'tuża wkoll -mogħtija jew speċifika "BIBLJOTEKA" f'xi fajl ".def" mogħti.

--enable-stdcall-fixup

--disable-stdcall-fixup

Jekk ir-rabta ssib simbolu li ma tistax issolvi, tipprova tagħmel `` rabta fuzzy '' billi tfittex simbolu ieħor definit li huwa differenti biss fil-format tal-isem tas-simbolu (cdecl vs stdcall) u jsolvi dak is-simbolu billi jgħaqqad għall-partita. Pereżempju, is-simbolu mhux definit "_foo" jista 'jkun marbut mal-funzjoni "_foo @ 12", jew is-simbolu mhux definit "_bar @ 16" jista' jkun marbut mal-funzjoni "_bar". Meta l-linker jagħmel dan, huwa juri twissija, minħabba li normalment m'għandux jonqos, iżda xi kultant il-libreriji tal-importazzjoni ġġenerati minn dlls ta 'terzi jistgħu jeħtieġu din il-karatteristika biex ikunu jistgħu jintużaw. Jekk tispeċifika --enable-stdcall-fixup , din il-karatteristika hija kompletament attiva u t-twissijiet mhumiex stampati. Jekk tispeċifika --disable-stdcall-fixup , din il-karatteristika hija diżattivata u diskrepanzi bħal dawn huma kkunsidrati bħala żbalji.

--export-all-simboli

Jekk tingħata, is-simboli globali kollha fl-oġġetti użati biex tinbena DLL se jiġu esportati mid-DLL. Innota li din hija l-inadempjenza jekk ikun hemm mod ieħor ma jkun hemm l-ebda simbolu esportat. Meta s-simboli huma espliċitament esportati permezz ta 'fajls DEF jew impliċitament esportati permezz ta' attributi tal-funzjoni, l-inadempjenza hi li ma tesportax xi ħaġa oħra sakemm din l-għażla ma tingħatax. Innota li s-simboli "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", u "impure_ptr" ma jiġux esportati awtomatikament. Ukoll, simboli importati minn DLLs oħra ma jerġgħux jiġu esportati mill-ġdid, u lanqas ma għandhom simboli li jispeċifikaw it-tqassim intern tad-DLL bħal dawk li jibdew b '"_head_" jew li jispiċċaw b' "_inam". Barra minn hekk, l-ebda simbolu minn "libgcc", "libstd ++", "libmingw32", jew "crtX.o" ma jiġi esportat. Is-simboli li isimhom jibda b '"__rtti_" jew "__builtin_" ma jiġux esportati, biex jgħinu b'C ++ DLLs. Finalment, hemm lista estensiva ta 'simboli cygwin-privati ​​li mhumiex esportati (ovvjament, dan japplika meta jinbnew DLLs għal miri ta' cygwin).

Dawn cygwin-jeskludi huma: "_cygwin_dll_entry @ 12", "_cygwin_crt0_common @ 8", "_ cygwin_noncygwin_dll_entry @ 12", "_fmode", "_impure_ptr", "cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2", "cygwin_premain3 ", u" ambjent ".

- teskludi simboli simboli , simbolu , ...

Tispeċifika lista ta 'simboli li m'għandhomx jiġu esportati awtomatikament. L-ismijiet tas-simboli jistgħu jiġu delimitati b'komas jew b'colons.

--exclude-libs lib , lib , ...

Jispeċifika lista ta 'libreriji ta' arkivju li minnhom is-simboli m'għandhomx jiġu esportati awtomatikament. L-ismijiet tal-bibljoteka jistgħu jiġu delimitati b'viraġġi jew b'kolonna. L-ispeċifikazzjoni "--exclude-libs ALL" teskludi simboli fil-libreriji kollha tal-arkivji mill-esportazzjoni awtomatika. Is-simboli elenkati b'mod espliċitu fil-fajl .def għadhom esportati, irrispettivament minn din l-għażla.

- allinjament tal-fajl

Speċifika l-allinjament tal-fajl. It-taqsimiet fil-fajl dejjem jibdew b'offerti ta 'fajls li huma multipli ta' dan in-numru. Dan ma jiffunzjonax għal 512.

- riserva għaż - żgħażagħ

--għallem riserva , jimpenja ruħu

Speċifika l-ammont ta 'memorja li tirriżerva (u b'mod fakultattiv timpenja) li għandha tintuża bħala borġ għal dan il-programm. In-nuqqas huwa 1Mb riservat, 4K kommessi.

- valur ta 'l-immaġni bażi

Uża l- valur bħala l-indirizz bażi tal-programm tiegħek jew dll. Dan huwa l-iktar post tal-memorja l-aktar baxx li se jintuża meta l-programm tiegħek jew dll jitgħabba. Biex titnaqqas il-ħtieġa ta 'rilokazzjoni u titjib tal-prestazzjoni tad-dlls tiegħek, kull wieħed għandu jkollu indirizz ta' bażi unika u ma jikkoinċidix ma 'xi dlls oħra. In-nuqqas huwa 0x400000 għal eżekutibbli, u 0x10000000 għal dlls.

--kull-at

Jekk jingħata, is-suffissi stdcall (@ nn ) se jiġu mqaxxra minn simboli qabel ma jiġu esportati.

--major-image-version value

Issettja n-numru l-aktar importanti tal-verżjoni ta '"` immaġni' '. Defaults għal 1.

--major-os-version value

Issettja n-numru kbir tal-verżjoni `` os ''. Defaults għal 4.

--major-subsistema- valur tal- verżjoni

Issettja n-numru ewlieni tal-verżjoni tas-subsistema `` ''. Defaults għal 4.

- valur ta 'minor-immaġni-verżjoni

Issettja n-numru minuri tal-verżjoni ta '"` immaġni' '. Defaults għal 0.

- valur ta 'minor-os-version

Issettja n-numru minuri tal-verżjoni `` os ''. Defaults għal 0.

--minor-subsistema- valur tal- verżjoni

Twaqqaf in-numru minuri tal-verżjoni tas-subsistema `` ''. Defaults għal 0.

--output-def file

Il-linker se joħloq fajl fajl li jkun fih fajl DEF li jikkorrispondi għad-DLL li r-rabta qed tiġġenera. Dan il-fajl DEF (li għandu jissejjaħ "* .def") jista 'jintuża biex tinħoloq librerija ta' importazzjoni bi "dlltool" jew tista 'tintuża bħala referenza għal simboli awtomatikament jew impliċitament esportati.

--out-impjant fajl

Il-linker se joħloq fajl fajl li jkun fih lib ta 'importazzjoni li jikkorrispondi għad-DLL li r-rabta qed tiġġenera. Din il-lib ta 'importazzjoni (li għandha tissejjaħ "* .dll.a" jew "* .a" tista' tintuża biex tgħaqqad klijenti mal-DLL iġġenerat; din l-imġieba tagħmilha possibbli li taqbeż pass separat ta 'ħolqien ta' librerija ta 'importazzjoni "dlltool".

--enable-auto-image-base

Agħżel awtomatikament il-bażi ta 'l-immaġni għal DLLs, sakemm ma jkunx speċifikat bl-użu ta' l-argument "--image-base". Bl-użu ta 'hash iġġenerat mid-dllname biex jinħolqu bażijiet ta' immaġni uniċi għal kull DLL, kolliżjonijiet fil-memorja u rilokazzjonijiet li jistgħu jdewmu l-eżekuzzjoni tal-programm huma evitati.

--disable-auto-image-base

M'għandekx awtomatikament tiġġenera bażi immaġni unika. Jekk m'hemmx bażi ta 'immaġini speċifikata mill-utent ("--imagem-bażi") imbagħad uża l-inadempjenza tal-pjattaforma.

- string ta 'prefiss tat-tfittxija tad-dll

Meta torbot b'mod dinamiku ma 'dll mingħajr librerija ta' importazzjoni, fittex għal " .dll" bi preferenza għal "lib .dll". Din l-imġieba tippermetti distinzjoni faċli bejn DLLs mibnija għad-diversi "sottostratformi": native, cygwin, uwin, pw, eċċ. Per eżempju, cygwin DLLs tipikament jużaw "--dll-search-prefix = cyg".

--bilanċjata-awto-importazzjoni

Agħmel rabta sofistikata ta '"simbolu" ma "__imp__simbolu" għall-importazzjonijiet tad-DATA minn DLLs, u toħloq is-simboli meħtieġa tat-thunking meta tibni l-libreriji tal-importazzjoni ma' dawk id-DATA. Dan ġeneralment ikun "jaħdem biss" --- imma kultant jista 'jara dan il-messaġġ:

"varjabbli" "ma tistax tiġi importata awtomatikament. Jekk jogħġbok aqra d-dokumentazzjoni għal" --enable-auto-import "ta 'ld's għal dettalji."

Dan il-messaġġ iseħħ meta xi (sotto) espressjoni taċċessa indirizz fl-aħħar mogħti mis-somma ta 'żewġ kostanti (tabelli ta' importazzjoni Win32 jippermettu biss wieħed). L-istanzi fejn dan jista 'jseħħ jinkludu aċċessi għal oqsma membri ta' fatturi varjabbli strutturati importati minn DLL, kif ukoll l-użu ta 'indiċi kostanti f'varjal varjabbli importat minn DLL. Kwalunkwe varjabbli multiword (arrays, structs, twil, eċċ) jista 'jikkawża din il-kundizzjoni ta' żball. Madankollu, irrispettivament mit-tip ta 'data eżatta tal-varjabbli esportatur li joffendi, dejjem issibha, toħroġ it-twissija u toħroġ.

Hemm diversi modi kif tiġi indirizzata din id-diffikultà, irrispettivament mit-tip tad-dejta tal-varjabbli esportata:

Mod wieħed huwa l-użu - switch-runtime-pseudo-reloc swiċċ. Dan iħalli l-kompitu li jaġġusta r-referenzi fil-kodiċi tal-klijent tiegħek għall-ambjent ta 'runtime, għalhekk dan il-metodu jaħdem biss meta l-ambjent ta' runtime jappoġġja din il-karatteristika.

It-tieni soluzzjoni hija li forza waħda mill- "kostanti" tkun varjabbli --- li hija, mhux magħrufa u mhux ottimizzabbli fil-ħin tal-kumpilazzjoni. Għal arrays, hemm żewġ possibbiltajiet: a) tagħmel l-indexee (l-indirizz tal-firxa) varjabbli, jew b) tagħmel l-indiċi "kostanti" varjabbli. Għalhekk:

external type extern_array []; extern_array [1] -> (tip volatili * t = extern_array; t [1]}

jew

external type extern_array []; extern_array [1] -> (int volatili t = 1; extern_array [t]}

Għal strutts (u l-biċċa l-kbira tat-tipi l-oħra ta 'dejta b'ħafna kelmiet) l-unika għażla hija li tagħmel il-struct innifsu (jew it-tul twil, jew il-...) varjabbli:

external struct s extern_struct; extern_struct.field -> {volatile struct s * t = & extern_struct; t-> field}

jew

esterna twila esterna twila; extern_ll -> {volatili twil fit-tul} local_ll = & extern_ll; * local_ll}

It-tielet metodu li jittratta din id-diffikultà huwa li jabbanduna "importazzjoni awtomatika" għas-simbolu li joffendi u jimmarkaha b '"__declspec (dllimport)". Madankollu, fil-prattika dan jirrikjedi l-użu ta 'ħin ta' kompilazzjoni # jiddefinixxi biex jindika jekk hux qed tinbena DLL, tibni kodiċi tal-klijent li se torbot mad-DLL, jew sempliċiment tibni / torbot ma 'librerija statika. Meta tagħmel l-għażla bejn il-metodi varji biex issolvi l-problema ta '' indirizz dirett b'kontinwazzjoni kostanti ', għandek tqis l-użu tipiku fid-dinja reali:

Oriġinali:

--foo.h external int arr []; --foo.c #include "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", arr [1]); }

Soluzzjoni 1:

--foo.h external int arr []; --foo.c #include "foo.h" void main (int argc, char ** argv) {/ * Din it-taħlita hija għal win32 u cygwin; ma "ottimizzax" * / volatili int * parr = arr; printf ("% d \ n", parr [1]); }

Soluzzjoni 2:

--foo.h / * Nota: l-awto-esportazzjoni hija preżunta (l-ebda __declspec (dllexport)) * / #if (definit (_WIN32) || definita (__ CYGWIN__)) && \! (definita (FOO_BUILD_DLL) || definita (FOO_STATIC )) #define FOO_IMPORT __declspec (dllimport) #else #define FOO_IMPORT #endif extern FOO_IMPORT int arr []; --foo.c #include "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", arr [1]); }

Ir-raba 'mod biex tkun evitata din il-problema huwa li terġa' tikkodifika l-librerija tiegħek biex tuża interface funzjonali aktar milli interface tad-data għall-fatturi varjabbli offensivi (eż. Set_foo () u get_foo () funzjonijiet accessor).

--disail-auto-import

Tippruvax tagħmel konnessjoni sophisticalted ta '"simbolu" għal "__imp__simbolu" għal DATAimports minn DLLs.

--enable-runtime-pseudo-reloc

Jekk il-kodiċi tiegħek fih espressjonijiet deskritti f'taqsima ta '"enable-auto-import", jiġifieri, DATAimports minn DLL bi żero mhux ibbilanċjat, dan l-iswiċċ se joħloq vettur ta' "rsepunt pseudo-rilokazzjonijiet" li jista 'jintuża minn ambjent runtime biex jiġu aġġustati referenzi għal dik id-data fil-kodiċi tal-klijent tiegħek.

--disable-runtime-pseudo-reloc

M'għandekx toħloq psewdo rilokazzjonijiet għal importazzjonijiet ta 'DATA bla kumpens minn żero minn DLLs. Dan huwa l-inadempjenza.

--enable-extra-pe-debug

Uri informazzjoni ta 'debug addizjonali relatata ma' thunking tas-simbolu ta 'importazzjoni awtomatika.

- l-allinjament tas-sezzjoni

Twaqqaf l-allinjament tas-sezzjoni. It-taqsimiet fil-memorja dejjem se jibdew fl-indirizzi li huma multipli ta 'dan in-numru. Defaults għal 0x1000.

- riserva ta ' stakk

- riserva ta ' stakk , jimpenjaw ruħhom

Speċifika l-ammont ta 'memorja li tirriżerva (u b'mod fakultattiv timpenja) biex tintuża bħala munzell għal dan il-programm. In-nuqqas huwa 2Mb riservat, 4K kommessi.

- sottosistema li

--subsistema li : prinċipali

--subsistema li : prinċipali . minuri

Speċifika s-sottosistema li taħtha l-programm tiegħek ser jesegwixxi. Il-valuri legali li huma "nattivi", "twieqi", "console", u "posix". Tista 'b'għażla tistabbilixxi wkoll il-verżjoni tas-subsistema.

Importanti: Uża l-kmand tal- bniedem ( % raġel ) biex tara kif tintuża kmand fuq il-kompjuter partikolari tiegħek.