Gorchymyn Linux / Unix: Id

ENW

ld - Defnyddio LD , y cysylltydd GNU

SYNOPSIS

ld [ options ] objfile ...

DISGRIFIAD

Mae ld yn cyfuno nifer o ffeiliau gwrthrych ac archif, yn adleoli eu data ac yn cysylltu cyfeiriadau symbolau. Fel arfer, y cam olaf wrth lunio rhaglen yw rhedeg ld .

Mae LD yn derbyn ffeiliau Iaith Reoli Cysylltydd a ysgrifennwyd mewn cyfres o gystrawen Iaith Reoli Gorchmynion Golygydd Cyswllt AT & T, er mwyn darparu rheolaeth glir a chyfanswm dros y broses gyswllt.

Nid yw'r dudalen ddyn hon yn disgrifio'r iaith orchymyn; gweler y cofnod ld yn "info", neu'r llawlyfr ld: y cysylltydd GNU , am fanylion llawn ar yr iaith gorchymyn ac ar agweddau eraill ar y cysylltyddGNU.

Mae'r fersiwn hon o ld yn defnyddio llyfrgelloedd BFD diben cyffredinol i weithredu ar ffeiliau gwrthrych. Mae hyn yn caniatáu ld i ddarllen, cyfuno ac ysgrifennu ffeiliau gwrthrych mewn llawer o wahanol fformatau --- er enghraifft, COFF neu "a.out". Gellid cysylltu fformatau gwahanol gyda'i gilydd i gynhyrchu unrhyw fath o ffeil gwrthrych sydd ar gael.

Ar wahân i'w hyblygrwydd, mae'r cysylltydd GNU yn fwy defnyddiol na chysylltwyr eraill wrth ddarparu gwybodaeth ddiagnostig. Mae llawer o gysylltwyr yn rhoi'r gorau i weithredu ar unwaith ar ôl cael gwall; pryd bynnag y bo modd, mae ld yn parhau i weithredu, gan ganiatáu i chi nodi camgymeriadau eraill (neu, mewn rhai achosion, i gael ffeil allbwn er gwaethaf y gwall).

Mae'r cysylltydd GNU ld yn golygu cwmpasu ystod eang o sefyllfaoedd, ac i fod mor gydnaws â phosib gyda chysylltwyr eraill. O ganlyniad, mae gennych lawer o ddewisiadau i reoli ei ymddygiad.

OPSIYNAU

Mae'r cysylltydd yn cefnogi nifer o opsiynau llinell orchymyn , ond mewn ymarfer gwirioneddol, defnyddir ychydig ohonynt mewn unrhyw gyd-destun penodol. Er enghraifft, defnydd aml o ld yw cysylltu ffeiliau gwrthrych Unix safonol ar system safonol a chefnogir Unix . Ar system o'r fath, i gysylltu ffeil "hello.o":

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

Mae hyn yn dweud ld i gynhyrchu ffeil o'r enw allbwn o ganlyniad i gysylltu'r ffeil "/lib/crt0.o" gyda "hello.o" a'r llyfrgell "libc.a", a ddaw o'r cyfeirlyfrau chwilio safonol. (Gweler y drafodaeth ar yr opsiwn -l isod.)

Mae'n bosibl y bydd rhai o'r opsiynau ar-lein i ld yn cael eu nodi ar unrhyw bwynt yn y llinell orchymyn. Fodd bynnag, mae opsiynau sy'n cyfeirio at ffeiliau, fel -l neu -T , yn achosi darllen y ffeil ar y pwynt y mae'r opsiwn yn ymddangos yn y llinell orchymyn, o'i gymharu â'r ffeiliau gwrthrych ac opsiynau ffeil eraill. Ni fydd ail-wneud opsiynau nad ydynt yn ffeiliau gyda dadl wahanol naill ai'n cael unrhyw effaith bellach, nac yn anwybyddu'r digwyddiadau blaenorol (y rhai ymhellach i'r chwith ar y llinell orchymyn) o'r opsiwn hwnnw. Nodir opsiynau y gellir eu pennu'n ystyrlon fwy nag unwaith yn y disgrifiadau isod.

Dadleuon di-opsiwn yw ffeiliau gwrthrych neu archifau sydd i'w cysylltu â'i gilydd. Gallant ddilyn, rhagflaenu, neu eu cymysgu â dewisiadau llinell orchymyn, ac eithrio na ellir gosod dadl ffeil gwrthrych rhwng opsiwn a'i ddadl.

Fel arfer, mae'r cysylltydd yn cael ei ddefnyddio gydag o leiaf un ffeil gwrthrych, ond gallwch nodi ffurfiau eraill o ffeiliau mewnbwn deuaidd gan ddefnyddio -l , -R , a'r iaith gorchymyn sgript. Os nad oes unrhyw ffeiliau mewnbwn deuaidd wedi'u nodi o gwbl, nid yw'r cysylltydd yn cynhyrchu unrhyw allbwn, ac yn amlygu'r neges Dim ffeiliau mewnbwn .

Os na all y cyswlltwr gydnabod fformat ffeil gwrthrych, bydd yn tybio ei fod yn sgript cyswllt. Mae sgript a bennir yn y modd hwn yn ychwanegu at y brif sgript cysylltydd a ddefnyddir ar gyfer y ddolen (naill ai'r sgript cyswllt cyswllt diofyn neu'r un a bennir trwy ddefnyddio -T ). Mae'r nodwedd hon yn caniatáu i'r cysylltydd gysylltu yn erbyn ffeil sy'n ymddangos yn wrthrych neu'n archif, ond mewn gwirionedd dim ond yn diffinio rhai gwerthoedd symbolau, neu'n defnyddio "INPUT" neu "GROUP" i lwytho gwrthrychau eraill. Sylwch nad yw manylu sgript yn y modd hwn yn ychwanegu at y brif sgript cysylltydd; defnyddiwch yr opsiwn -T i ddisodli'r sgript cyswllt cyswllt diofyn yn llwyr.

Ar gyfer opsiynau y mae eu henwau yn un llythyr, mae'n rhaid i ddadleuon opsiwn naill ai ddilyn y llythyr opsiwn heb gofod gwyn ymyrryd, neu gael eu rhoi fel dadleuon ar wahân yn syth yn dilyn yr opsiwn sy'n ei gwneud yn ofynnol.

Ar gyfer opsiynau y mae eu henwau yn lluoslythrennau, gall naill ai un dash neu ddau fynd rhagddo â'r enw dewis; er enghraifft, mae -trace-symbol a -trace-symbol yn gyfwerth. Sylwer - mae un eithriad i'r rheol hon. Dim ond dau dashes y gall opsiynau llythyrau lluosog sy'n dechrau gydag achos isaf 'o' eu blaenoriaethu. Mae hyn i ostwng dryswch gyda'r opsiwn -o . Felly, er enghraifft -magig yn gosod enw'r ffeil allbwn i hud tra bod --omigig yn gosod baner NMAGIC ar yr allbwn.

Rhaid i ddadleuon i opsiynau lluosog lythyr naill ai gael eu gwahanu o'r enw opsiwn gan arwydd hafal, neu gael eu rhoi fel dadleuon ar wahân yn syth yn dilyn yr opsiwn sy'n ei gwneud yn ofynnol. Er enghraifft, mae --trace-symbol foo a --trace-symbol = foo yn gyfwerth. Derbynnir byrfoddau unigryw o enwau opsiynau lluosog llythyrau.

Sylwer - os yw'r cysylltydd yn cael ei ddefnyddio'n anuniongyrchol, trwy gyfrwng gyrrwr compiler (ee gcc ) yna dylid rhagosod pob opsiwn llinell gorchymyn cyswllt â -Wl, (neu beth bynnag sy'n briodol ar gyfer y gyrrwr compiler penodol) fel hyn:

gcc -Wl, - startgroup foo.o bar.o -Wl, - group end

Mae hyn yn bwysig, oherwydd fel arall gall y rhaglen gyrrwr compiler gollwng y dewisiadau cyswllt yn dawel, gan arwain at ddolen ddolen.

Dyma tabl o'r switshis llinell gorchymyn generig a dderbynnir gan y cysylltydd GNU:

-a allweddair

Cefnogir yr opsiwn hwn ar gyfer cydweddoldeb HP / UX. Rhaid i'r ddadl allweddair fod yn un o'r archifau , ar y cyd , neu yn ddiofyn . -archive yn swyddogaethol gyfatebol i -Batig , ac mae'r ddau eiriau allweddol arall yn gyfwerth â -Bynynamig . Gellir defnyddio'r opsiwn hwn unrhyw nifer o weithiau.

- Pensaernïaeth

--architecture = pensaernïaeth

Yn y datganiad cyfredol o ld , mae'r opsiwn hwn yn ddefnyddiol yn unig ar gyfer teulu Intel Pensaernïaeth 960. Yn y cyfluniad hwnnw, mae'r ddadl pensaernïaeth yn nodi'r bensaernïaeth benodol yn y teulu 960, gan alluogi rhai mesurau diogelu ac addasu'r llwybr chwilio archifau-llyfrgell.

Gall datganiadau LD yn y dyfodol gefnogi swyddogaeth debyg i deuluoedd pensaernïaeth eraill.

-b mewnbwn-fformat

--format = input -format

Gall ld gael ei ffurfweddu i gefnogi mwy nag un math o ffeil gwrthrych. Os yw eich ld wedi'i ffurfweddu fel hyn, gallwch ddefnyddio'r opsiwn -b i nodi'r fformat deuaidd ar gyfer ffeiliau gwrthrych mewnbwn sy'n dilyn yr opsiwn hwn ar y llinell orchymyn. Hyd yn oed pan fydd ld wedi'i ffurfweddu i gefnogi fformatau gwrthrych amgen, nid oes raid i chi nodi hyn fel arfer, gan y dylid lunio ffurflenni ld i ddisgwyl fel fformat mewnbwn diofyn y fformat mwyaf arferol ar bob peiriant. Mae mewnbwn-ffurf yn llinyn testun, enw fformat penodol a gefnogir gan lyfrgelloedd BFD. (Gallwch restru'r fformatau deuaidd sydd ar gael gyda objdump -i .)

Efallai y byddwch am ddefnyddio'r opsiwn hwn os ydych chi'n cysylltu ffeiliau gyda fformat deuaidd anarferol. Gallwch hefyd ddefnyddio -b i newid fformatau yn benodol (wrth gysylltu ffeiliau gwrthrych o wahanol fformatau), trwy gynnwys -b - input -format cyn pob grŵp o ffeiliau gwrthrych mewn fformat penodol.

Cymerir y fformat diofyn o'r newidyn amgylchedd "GNUTARGET".

Gallwch hefyd ddiffinio'r fformat mewnbwn o sgript, gan ddefnyddio'r gorchymyn "TARGED";

-c MRI-commandfile

--mri-script = MRI-commandfile

Ar gyfer cydnawsedd â chysylltwyr a gynhyrchir gan MRI, mae ld yn derbyn ffeiliau sgriptiau ysgrifenedig mewn iaith orchymyn cyfyngu, cyfyngu, a ddisgrifir yn adran Ffeiliau Sgript Cydweddadwy MRI o ddogfennaeth GNU ld. Cyflwyno ffeiliau sgript MRI gyda'r opsiwn -c ; defnyddiwch yr opsiwn T i redeg sgriptiau cysylltiol a ysgrifennwyd yn yr iaith sgriptio pwrpasol cyffredinol. Os nad yw MRI-cmdfile yn bodoli, mae ld yn chwilio amdano yn y cyfeirlyfrau a bennir gan unrhyw opsiynau -L .

-d

-dc

-dp

Mae'r tri opsiwn hyn yn gyfwerth; mae ffurflenni lluosog yn cael eu cefnogi ar gyfer cydweddu â chysylltwyr eraill. Maent yn neilltuo lle i symbolau cyffredin hyd yn oed os yw ffeil allbwn ail-leoli yn cael ei bennu (gyda -r ). Mae'r gorchymyn sgript "FORCE_COMMON_ALLOCATION" yr un effaith.

-e fynediad

--entry = cofnod

Defnyddiwch y cofnod fel y symbol penodol ar gyfer dechrau gweithredu eich rhaglen, yn hytrach na'r pwynt mynediad diofyn. Os nad oes cofnod o'r enw symbol, bydd y cysylltydd yn ceisio parcio mynediad fel rhif, a defnyddiwch hynny fel y cyfeiriad cofnod (bydd y rhif yn cael ei ddehongli yn sylfaen 10; gallwch ddefnyddio 0x blaenllaw ar gyfer sylfaen 16, neu arwain 0 ar gyfer sail 8).

-E

--export-deinamig

Wrth greu gweithredadwyadwy cysylltiedig â dynameg, ychwanegwch yr holl symbolau i'r bwrdd symbol dynamig. Y tabl symbol deinamig yw'r set o symbolau sy'n weladwy o wrthrychau deinamig yn ystod amser rhedeg.

Os na fyddwch chi'n defnyddio'r opsiwn hwn, fel arfer bydd y tabl symbol deinamig yn cynnwys dim ond y symbolau hynny y cyfeirir atynt gan rai gwrthrych deinamig a grybwyllir yn y ddolen.

Os ydych chi'n defnyddio "dlopen" i lwytho gwrthrych deinamig y mae angen cyfeirio yn ôl at y symbolau a ddiffinnir gan y rhaglen, yn hytrach nag am wrthrych deinamig arall, mae'n debyg y bydd angen i chi ddefnyddio'r opsiwn hwn wrth gysylltu y rhaglen ei hun.

Gallwch hefyd ddefnyddio'r sgript fersiwn i reoli pa symbolau y dylid eu hychwanegu at y tabl symbol deinamig os yw'r fformat allbwn yn ei gefnogi. Gweler y disgrifiad o --version-script in @ ref {VERSION}.

-BB

Cyswllt gwrthrychau mawr-endiaidd. Mae hyn yn effeithio ar y fformat allbwn rhagosodedig.

-EL

Cysylltwch â gwrthrychau bach-endiaidd. Mae hyn yn effeithio ar y fformat allbwn rhagosodedig.

-f

- enw cyswllt

Wrth greu gwrthrych a rennir ELF, gosodwch y maes DT_AUXILIARY mewnol i'r enw penodedig. Mae hyn yn dweud wrth y cysylltydd deinamig y dylid defnyddio tabl symbol y gwrthrych a rennir fel hidlydd ategol ar bwrdd symbol yr enw gwrthrych a rennir.

Os ydych chi'n cysylltu rhaglen yn erbyn y gwrthrych hidlo hwn, yna, pan fyddwch chi'n rhedeg y rhaglen, bydd y cysylltydd dynamig yn gweld y maes DT_AUXILIARY. Os yw'r cysylltydd deinamig yn datrys unrhyw symbolau o'r gwrthrych hidlo, bydd yn gyntaf yn gwirio a oes diffiniad yn yr enw gwrthrych a rennir. Os oes un, fe'i defnyddir yn lle'r diffiniad yn y gwrthrych hidlo. Nid oes angen i'r enw gwrthrych a rennir fodoli. Felly, gellir defnyddio'r enw gwrthrych a rennir i ddarparu gweithrediad amgen o swyddogaethau penodol, efallai ar gyfer dadfeddiannu neu ar gyfer perfformiad peiriant penodol.

Gellir nodi'r opsiwn hwn fwy nag unwaith. Bydd y cofnodion DT_AUXILIARY yn cael eu creu yn y drefn y maent yn ymddangos ar y llinell orchymyn.

-Y enw

- enw'r enw

Wrth greu gwrthrych a rennir ELF, gosodwch y maes DT_FILTER mewnol i'r enw penodedig. Mae hyn yn dweud wrth y cysylltydd deinamig y dylid defnyddio tabl symbol y gwrthrych a rennir sy'n cael ei greu fel hidlydd ar fwrdd symbol yr enw gwrthrych a rennir.

Os ydych chi'n cysylltu rhaglen yn erbyn y gwrthrych hidlo hwn, yna, pan fyddwch chi'n rhedeg y rhaglen, bydd y cysylltydd dynamig yn gweld maes DT_FILTER. Bydd y cysylltydd deinamig yn datrys symbolau yn ôl tabl symbol y gwrthrych hidlo fel arfer, ond bydd mewn gwirionedd yn cysylltu â'r diffiniadau a geir yn yr enw gwrthrych a rennir. Felly, gellir defnyddio'r gwrthrych hidlo i ddewis is-set o'r symbolau a ddarperir gan enw'r gwrthrych.

Defnyddiodd rhai cysylltwyr hŷn yr opsiwn -F trwy gydolyn offeryn casglu ar gyfer pennu fformat ffeiliau gwrthrych ar gyfer ffeiliau mewnbwn ac allbwn allbwn. Mae'r cysylltydd GNU yn defnyddio mecanweithiau eraill at y diben hwn: y -b , --format , - opsiynauformform, y gorchymyn "TARGED" mewn sgriptiau cyswllt, a'r newidyn amgylchedd "GNUTARGET". Bydd y cysylltydd GNU yn anwybyddu'r opsiwn -F wrth beidio â chreu gwrthrych a rennir gan ELF.

enw pen

Wrth greu gwrthrych cyflawnadwy neu renwm ELF, ffoniwch ENW pan ddadlwythir y gwrthrych cyflawnadwy neu gyflawn, trwy osod DT_FINI i gyfeiriad y swyddogaeth. Yn ddiffygiol, mae'r cysylltydd yn defnyddio "_fini" fel y swyddogaeth i alw.

-g

Anwybyddu. Wedi'i ddarparu ar gyfer cydweddu ag offer eraill.

-G gwerth

--gpsize = gwerth

Gosodwch y mwyafswm o wrthrychau i'w optimeiddio gan ddefnyddio'r gofrestr MT i faint . Mae hyn ond yn ystyrlon ar gyfer fformatau ffeiliau gwrthrych fel MIPS ECOFF sy'n cefnogi rhoi gwrthrychau mawr a bach i wahanol adrannau. Anwybyddir hyn ar gyfer fformatau ffeiliau gwrthrych eraill.

-h enw

-soname = enw

Wrth greu gwrthrych a rennir gan ELF, gosodwch y maes DT_SONAME mewnol i'r enw penodedig. Pan fo gweithredadwyadwy yn gysylltiedig â gwrthrych a rennir sydd â maes DT_SONAME, yna pan fydd y gweithredadwy yn cael ei redeg bydd y cysylltydd deinamig yn ceisio llwytho'r gwrthrych a rennir a bennir gan y maes DT_SONAME yn hytrach na defnyddio'r enw ffeil a roddir i'r cysylltydd.

-i

Perfformiwch ddolen gynyddrannol (yr un peth ag opsiwn -r ).

enw cyntaf

Wrth greu gwrthrych cyflawnadwy neu renwm ELF, ffoniwch ENW wrth lwytho'r gwrthrych cyflawnadwy neu ei rannu, trwy osod DT_INIT i gyfeiriad y swyddogaeth. Yn ddiffygiol, mae'r cysylltydd yn defnyddio "_init" fel y swyddogaeth i alw.

-l archif

- llyfrgell = archif

Ychwanegwch archif ffeiliau archif i'r rhestr o ffeiliau i'w cysylltu. Gellir defnyddio'r opsiwn hwn unrhyw nifer o weithiau. Bydd ld yn chwilio ei restr llwybr ar gyfer digwyddiadau "libarchive.a" ar gyfer pob archif a bennir.

Ar systemau sy'n cefnogi llyfrgelloedd a rennir, gall ld hefyd chwilio am lyfrgelloedd gydag estyniadau heblaw ".a". Yn benodol, ar systemau ELF a SunOS, bydd ld yn chwilio cyfeirlyfr ar gyfer llyfrgell gydag estyniad o ".so" cyn chwilio am un gydag estyniad o ".a". Yn ôl confensiwn, mae estyniad ".so" yn nodi llyfrgell a rennir.

Bydd y cysylltydd yn chwilio archif yn unig unwaith, yn y lleoliad lle mae wedi'i bennu ar y llinell orchymyn. Os yw'r archif yn diffinio symbol nad oedd wedi'i ddiffinio mewn peth gwrthrych a ymddangosodd cyn yr archif ar y llinell orchymyn, bydd y cysylltydd yn cynnwys y ffeil (au) priodol o'r archif. Fodd bynnag, ni fydd symbol heb ei ddiffinio mewn gwrthrych sy'n ymddangos yn nes ymlaen ar y llinell orchymyn yn peri i'r cysylltydd chwilio'r archif eto.

Gweler - ( opsiwn am ffordd i orfodi'r cysylltydd i chwilio archifau sawl gwaith.

Gallwch restru'r un archif sawl gwaith ar y llinell orchymyn.

Mae'r math hwn o chwilio archifau yn safonol i gysylltwyr Unix. Fodd bynnag, os ydych yn defnyddio ld onAIX, nodwch ei fod yn wahanol i ymddygiad y cysylltydd AIX.

-L searchdir

- llyfrgell-llwybr = searchdir

Ychwanegwch searchdir llwybr i'r rhestr o lwybrau a fydd yn chwilio am lyfrgelloedd archif a sgriptiau rheoli ld . Gallwch ddefnyddio'r opsiwn hwn unrhyw nifer o weithiau. Chwilir y cyfeirlyfrau yn y drefn y maent yn cael eu nodi ar y llinell orchymyn. Mae'r cyfeirlyfrau a bennir ar y llinell orchymyn yn cael eu chwilio cyn y cyfeirlyfrau diofyn. Mae pob opsiwn -L yn berthnasol i bob opsiwn -l , waeth pa drefn y mae'r opsiynau'n ymddangos.

Os yw searchdir yn dechrau gyda "=", yna caiff y "=" ei ddisodli gan y rhagddodiad sysroot , llwybr a bennir pan fydd y cysylltydd wedi'i ffurfweddu.

Mae'r set ddiofyn o lwybrau sy'n cael ei chwilio (heb ei bennu â -L ) yn dibynnu ar ba ddull emiwleiddio y mae ld yn ei ddefnyddio, ac mewn rhai achosion hefyd ar sut y cafodd ei ffurfweddu.

Gellir hefyd nodi'r llwybrau mewn sgript cyswllt â'r gorchymyn "SEARCH_DIR". Chwiliir y cyfeirlyfrau a bennir fel hyn ar y pwynt y mae'r sgript cysylltydd yn ymddangos yn y llinell orchymyn.

-m emulation

Emulau'r cysylltydd efelychu . Gallwch restru'r emulations sydd ar gael gyda'r opsiynau --verbose neu -V .

Os nad yw'r opsiwn -m yn cael ei ddefnyddio, cymerir yr efelychu o'r newidyn amgylchedd "LDEMULATION", os yw hynny'n cael ei ddiffinio.

Fel arall, mae'r allyriad rhagosodedig yn dibynnu ar sut y ffurfiwyd y cysylltydd.

-M

--print-map

Argraffwch faplen gyswllt i'r allbwn safonol. Mae map cyswllt yn darparu gwybodaeth am y ddolen, gan gynnwys y canlynol:

*

Lle mae ffeiliau a symbolau gwrthrych yn cael eu mapio yn y cof.

*

Sut mae symbolau cyffredin yn cael eu dyrannu.

*

Roedd yr holl aelodau archifau wedi'u cynnwys yn y ddolen, gyda sôn am y symbol a achosodd i'r aelod archifol gael ei dwyn i mewn.

-n

--nigig

Trowch oddi ar aliniad tudalennau adrannau, a nodwch yr allbwn fel "NMAGIC" os yn bosibl.

-N

--omigig

Gosodwch yr adrannau testun a data i'w darllenadwy a'u hysgrifennu. Hefyd, peidiwch â chysylltu tudalen-alinio'r segment data, ac analluogi cysylltu yn erbyn llyfrgelloedd a rennir. Os bydd y fformat allbwn yn cefnogi rhifau hud Unix arddull, nodwch yr allbwn fel "OMAGIC".

--no-omagic

Mae'r opsiwn hwn yn gwrthod y rhan fwyaf o effeithiau'r opsiwn -N . Mae'n gosod yr adran destun i fod yn ddarllen-yn-unig, ac mae'n gorfodi'r segment data i gael ei alinio'n dudalen. Sylwer - nid yw'r opsiwn hwn yn galluogi cysylltu â llyfrgelloedd a rennir. Defnyddiwch -Bynynamig ar gyfer hyn.

-o allbwn

- allbwn = allbwn

Defnyddiwch allbwn fel yr enw ar gyfer y rhaglen a gynhyrchir gan ld ; os na phenodir yr opsiwn hwn, defnyddir yr enw a.out yn ddiofyn. Gall y gorchymyn sgript "OUTPUT" hefyd nodi enw'r ffeil allbwn.

-O lefel

Os yw lefel yn werthoedd rhifol yn fwy na sero ld, mae'n optimeiddio'r allbwn. Gallai hyn gymryd llawer mwy o amser ac felly mae'n debyg y dylid ei alluogi yn unig ar gyfer y deuaidd terfynol.

-q

- ail-adleoli

Gadewch adrannau a chynnwys adleoli mewn gweithrediadau gweithredu llawn. Efallai y bydd angen y wybodaeth hon ar ddadansoddiad cyswllt post ac offer optimization er mwyn gwneud addasiadau cywir o weithrediadau. Mae hyn yn arwain at weithrediadau mwy.

Ar hyn o bryd, dim ond ar lwyfannau ELF y mae'r opsiwn hwn ar gael.

-r

--relocable

Cynhyrchu allbwn aildrefnadwy --- hy, cynhyrchu ffeil allbwn a all yn ei dro wasanaethu fel mewnbwn i ld . Gelwir hyn yn aml yn gysylltiedig â'i gilydd . Yn sgil effaith, mewn amgylcheddau sy'n cefnogi niferoedd hud Unix safonol, mae'r opsiwn hwn hefyd yn gosod rhif hud y ffeil allbwn i "OMAGIC". Os na phenodir yr opsiwn hwn, cynhyrchir ffeil absoliwt. Wrth gysylltu rhaglenni C + + +, ni fydd yr opsiwn hwn yn datrys cyfeiriadau at adeiladwyr; i wneud hynny, defnyddiwch -Ur .

Pan nad oes gan ffeil fewnbwn yr un fformat â'r ffeil allbwn, dim ond os nad yw'r ffeil fewnbwn honno yn cynnwys unrhyw adleoli, cefnogir y cyswllt rhannol. Gall gwahanol fformatau allbwn gael cyfyngiadau pellach; er enghraifft, nid yw rhai "fformatau" a.out "yn cefnogi cysylltiad rhannol â ffeiliau mewnbwn mewn fformatau eraill o gwbl.

Mae'r opsiwn hwn yr un peth â -i .

-R enw'r ffeil

--just-symbols = enw'r ffeil

Darllenwch enwau symbolau a'u cyfeiriadau o enw'r ffeil , ond peidiwch â'u hadleoli neu eu cynnwys yn yr allbwn. Mae hyn yn caniatáu i'ch ffeil allbwn gyfeirio'n symbolaidd i leoliadau absoliwt o gof a ddiffinnir mewn rhaglenni eraill. Gallwch ddefnyddio'r opsiwn hwn fwy nag unwaith.

I fod yn gydnaws â chysylltwyr ELF eraill, os yw'r enw cyfeirlyfr yn dilyn yr opsiwn -R , yn hytrach nag enw ffeil, caiff ei drin fel opsiwn -rpath .

-s

- hollol-i gyd

Hepgorer holl wybodaeth symbol o'r ffeil allbwn.

-S

--strip-debug

Rhowch wybodaeth symbolau symbol (ond nid pob symbolau) o'r ffeil allbwn.

-t

--trace

Argraffwch enwau'r ffeiliau mewnbwn fel y maent yn eu prosesu.

-T scriptfile

--script = scriptfile

Defnyddiwch scriptfile fel sgript y cyswllt. Mae'r sgript hwn yn disodli'r sgript cyswllt cyswllt di-d (yn hytrach nag ychwanegu ato), felly mae'n rhaid i commandfile nodi popeth sy'n angenrheidiol i ddisgrifio'r ffeil allbwn. Os nad yw'r sgriptfile yn bodoli yn y cyfeirlyfr cyfredol, mae "ld" yn chwilio amdano yn y cyfeirlyfrau a bennir gan unrhyw ddewisiadau blaenorol -L . Mae opsiynau lluosog- T yn cronni.

-u symbol

- diffinnod = symbol

Symbolaeth yr heddlu i'w chofnodi yn y ffeil allbwn fel symbol heb ei ddiffinio. Gall gwneud hyn, er enghraifft, sbarduno cysylltu modiwlau ychwanegol o lyfrgelloedd safonol. -u gellir ei ailadrodd gyda dadleuon dewis gwahanol i nodi symbolau heb eu diffinio ychwanegol. Mae'r opsiwn hwn yn cyfateb i'r gorchymyn sgript cysylltydd "EXTERN".

-Ur

Ar gyfer unrhyw beth heblaw am raglenni C + + +, mae'r opsiwn hwn yn gyfwerth â -r : mae'n cynhyrchu allbwn aildrefnadwy --- hy, ffeil allbwn a all, yn ei dro, wasanaethu fel mewnbwn i ld . Wrth gysylltu rhaglenni C + +, -Mae'n datrys cyfeiriadau at adeiladwyr, yn wahanol i -r . Nid yw'n gweithio i'w ddefnyddio - Ar ffeiliau a oedd yn gysylltiedig â hwy - Ur ; unwaith y bydd y tabl dehonglwr wedi'i adeiladu, ni ellir ei ychwanegu ato. Defnyddiwch - Dim ond ar gyfer y cyswllt rhannol diwethaf, a -r i'r eraill.

--unique [= ADRAN ]

Yn creu adran allbwn ar wahân ar gyfer pob adran fewnbwn sy'n cydweddu ADRAN , neu os yw'r ddadl ADRAN cerdyn gwyllt dewisol ar goll, ar gyfer pob adran mewnbwn anffafriol. Mae adran amddifad yn un nad yw wedi'i crybwyll yn benodol mewn sgript cyswllt. Gallwch ddefnyddio'r opsiwn hwn sawl gwaith ar y llinell orchymyn; Mae'n atal uno'r adrannau mewnbwn yn gyffredin gyda'r un enw, aseiniadau adran allbwn gor-redol mewn sgript cyswllt.

-v

- gwrthwynebiad

-V

Dangoswch y rhif fersiwn ar gyfer ld . Mae'r opsiwn -V hefyd yn rhestru'r emulations a gefnogir.

-x

- yn ôl pob un ohonom

Dileu'r holl symbolau lleol.

-X

- pobl anabl

Dileu'r holl symbolau lleol dros dro. Ar gyfer y rhan fwyaf o dargedau, dyma'r holl symbolau lleol y mae eu henwau'n dechrau gyda L.

-y symbol

--trace-symbol = symbol

Argraffwch enw pob ffeil gysylltiedig lle mae'r symbol yn ymddangos. Efallai y rhoddir yr opsiwn hwn unrhyw nifer o weithiau. Ar lawer o systemau, mae angen rhagosod tanysgrifiad.

Mae'r opsiwn hwn yn ddefnyddiol pan fydd gennych chi symbol heb ei ddiffinio yn eich cyswllt ond ni wyddoch ble mae'r cyfeirnod yn dod.

-Y llwybr

Ychwanegu llwybr i'r llwybr chwilio llyfrgell rhagosodedig. Mae'r opsiwn hwn yn bodoli ar gyfer cydweddedd Solaris.

-z keyword

Mae'r allweddeiriau cydnabyddedig yn "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "now", "origin", "combreloc", "nocombreloc" a "nocopyreloc ". Anwybyddir y geiriau allweddol eraill ar gyfer cydnawsedd Solaris. Mae "initfirst" yn nodi'r gwrthrych i'w gychwyn ar y tro cyntaf yn gyntaf cyn unrhyw wrthrychau eraill. mae "interpose" yn nodi'r gwrthrych y mae ei bwrdd symbol yn ymyrryd cyn yr holl symbolau ond y prif weithredadwy. "loadfltr" yn nodi'r gwrthrych y caiff ei hidlyddion eu prosesu ar unwaith. Mae "nodefaultlib" yn nodi'r gwrthrych y bydd chwilio am ddibyniaethau'r gwrthrych hwn yn anwybyddu unrhyw lwybrau chwilio llyfrgell rhagosodedig. "nodeline" yn nodi na ddylid dadlwytho'r gwrthrych yn ystod amser. Mae "nodlopen" yn nodi nad yw'r gwrthrych ar gael i "dlopen". Mae "nodump" yn nodi na ellir diddymu'r gwrthrych gan "dldump". Mae "yn awr" yn nodi'r gwrthrych gyda'r rhwymiad runtime nad yw'n ddiog. Gall "tarddiad" nodi bod y gwrthrych yn cynnwys $ GORCHYMYN. "defs" yn gwrthod symbolau heb eu diffinio. Mae "muldefs" yn caniatáu diffiniadau lluosog. Mae "combreloc" yn cyfuno adrannau adleoli lluosog ac yn eu didoli i wneud cannu symbol dynamig yn bosibl.

"nocombreloc" yn analluogi adrannau adleoli lluosog sy'n cyfuno. "nocopyreloc" yn analluogi cynhyrchu ail-gopïau copi.

- ( archifau -)

- archifau grŵp -start --end-group

Dylai'r archifau fod yn rhestr o ffeiliau archif . Gallant fod naill ai'n enwau ffeiliau penodol, neu -l opsiynau.

Mae'r archifau penodedig yn cael eu chwilio dro ar ôl tro nes nad oes unrhyw gyfeirnodau newydd heb eu diffinio yn cael eu creu. Fel rheol, chwiliwyd archif yn unig unwaith yn y drefn ei fod wedi'i bennu ar y llinell orchymyn. Os oes angen symbol yn yr archif honno i ddatrys symbol heb ei ddiffinio y cyfeirir ato wrth wrthrych mewn archif sy'n ymddangos yn ddiweddarach ar y llinell orchymyn, ni fyddai'r cysylltydd yn gallu datrys y cyfeiriad hwnnw. Trwy grwpio'r archifau, byddant i gyd yn cael eu chwilio dro ar ôl tro nes bod pob cyfeiriad posibl yn cael ei ddatrys.

Gan ddefnyddio'r opsiwn hwn mae cost perfformiad sylweddol. Y peth gorau i'w ddefnyddio dim ond pan fo cyfeiriadau cylchol anochel rhwng dau neu fwy o archifau.

--accept-unknown-input-arch

--no-accept-unknown-input-arch

Yn dweud wrth y cyswlltwr i dderbyn ffeiliau mewnbwn na ellir cydnabod eu pensaernïaeth. Y rhagdybiaeth yw bod y defnyddiwr yn gwybod beth maen nhw'n ei wneud ac yn bwriadu cysylltu yn fwriadol yn y ffeiliau mewnbwn anhysbys hyn. Hwn oedd ymddygiad diofyn y cysylltydd, cyn ei ryddhau 2.14. Yr ymddygiad rhagosodedig rhag rhyddhau 2.14 ymlaen yw gwrthod ffeiliau mewnbwn o'r fath, ac felly mae'r opsiwn --accept-unknown-input-arch wedi'i ychwanegu i adfer yr hen ymddygiad.

-gynnwch allweddair

Anwybyddir yr opsiwn hwn ar gyfer cydweddoldeb SunOS .

-Bynynamig

-dy

-call_shared

Cyswllt yn erbyn llyfrgelloedd dynamig. Mae hyn ond yn ystyrlon ar lwyfannau ar gyfer pa lyfrgelloedd sy'n cael eu rhannu . Fel arfer, yr opsiwn hwn yw'r rhagosod ar lwyfannau o'r fath. Mae amrywiadau gwahanol yr opsiwn hwn ar gyfer cydweddu â gwahanol systemau. Gallwch ddefnyddio'r opsiwn hwn sawl gwaith ar y llinell orchymyn: mae'n effeithio ar chwilio am lyfrgelloedd ar gyfer -l opsiynau sy'n ei ddilyn.

-Blŵp

Gosodwch y faner "DF_1_GROUP" yn y cofnod "DT_FLAGS_1" yn yr adran ddeinamig. Mae hyn yn achosi'r cysylltydd runtime i ymdrin ag edrychiadau yn y gwrthrych hwn a'i ddibyniaethau i'w pherfformio yn unig y tu mewn i'r grŵp. - yn cael ei awgrymu - heb ei ddiffinio . Mae'r opsiwn hwn ond yn ystyrlon ar lwyfannau ELF sy'n cefnogi llyfrgelloedd a rennir .

-Batig

-dn

-non_shared

-statig

Peidiwch â chysylltu yn erbyn llyfrgelloedd a rennir. Mae hyn ond yn ystyrlon ar lwyfannau ar gyfer pa lyfrgelloedd sy'n cael eu rhannu. Mae amrywiadau gwahanol yr opsiwn hwn ar gyfer cydweddu â gwahanol systemau. Gallwch ddefnyddio'r opsiwn hwn sawl gwaith ar y llinell orchymyn: mae'n effeithio ar chwilio am lyfrgelloedd ar gyfer -l opsiynau sy'n ei ddilyn.

-Symbolig

Wrth greu llyfrgell a rennir, rhowch gyfeiriadau at symbolau byd-eang i'r diffiniad o fewn y llyfrgell a rennir, os o gwbl. Fel rheol, mae'n bosib i raglen sy'n gysylltiedig â llyfrgell a rennir orchymyn y diffiniad yn y llyfrgell a rennir. Mae'r opsiwn hwn ond yn ystyrlon ar gynlluniau siapllan sy'n cefnogi llyfrgelloedd a rennir.

- adrannau cywir

- adrannau di-wirio

Yn gofyn i'r cysylltydd beidio â gwirio cyfeiriadau adran ar ôl iddynt gael eu neilltuo i weld a oes gorgyffwrdd. Fel arfer bydd y cysylltydd yn perfformio'r siec hwn, ac os bydd yn dod o hyd i unrhyw gorgyffwrdd bydd yn cynhyrchu negeseuon gwall addas. Mae'r cysylltydd yn gwybod amdano, ac mae'n gwneud lwfansau ar gyfer adrannau mewn gorgyffwrdd. Gellir adfer yr ymddygiad diofyn trwy ddefnyddio'r switsh llinell gorchymyn - adrannau chwilio .

--cref

Allbwn tabl croesgyfeirio. Os yw ffeil map cyswllt yn cael ei gynhyrchu, caiff y tabl croesgyfeirio ei argraffu i'r ffeil map. Fel arall, fe'i hargraffir ar yr allbwn safonol.

Mae fformat y tabl yn fwriadol yn syml, fel y gellir ei brosesu'n hawdd gan sgript os oes angen. Mae'r symbolau wedi'u hargraffu, wedi'u didoli yn ôl enw. Ar gyfer pob symbol, rhoddir rhestr o enwau ffeiliau. Os yw'r symbol wedi'i ddiffinio, y ffeil gyntaf a restrir yw lleoliad y diffiniad. Mae'r ffeiliau sy'n weddill yn cynnwys cyfeiriadau at y symbol.

--no-define-common

Mae'r opsiwn hwn yn atal aseiniad cyfeiriadau i symbolau cyffredin. Mae'r gorchymyn sgript "INHIBIT_COMMON_ALLOCATION" yr un effaith.

Mae'r opsiwn --no-define-common yn caniatáu dad-wrthod y penderfyniad i neilltuo cyfeiriadau i symbolau Cyffredin o ddewis y math o ffeil allbwn; fel arall, mae mathau o allbwn nad oes modd eu hail-leoli yn rhoi aseiniadau i symbolau Cyffredin. Mae defnyddio --no-define-common yn caniatáu i symbolau cyffredin y cyfeirir atynt o lyfrgell a rennir gael eu cyfeirio yn unig yn y prif raglen. Mae hyn yn dileu'r gofod dyblyg nas defnyddiwyd yn y llyfrgell a rennir, ac mae hefyd yn atal unrhyw ddryswch posibl dros ddatrys y dyblyg anghywir pan fo llawer o fodiwlau deinamig gyda llwybrau chwilio arbenigol ar gyfer datrys symbolau runtime.

- symbol symbolau = mynegiant

Creu symbol byd-eang yn y ffeil allbwn, sy'n cynnwys y cyfeiriad absoliwt a roddir gan fynegiant . Gallwch ddefnyddio'r opsiwn hwn gymaint o weithiau yn ôl yr angen i ddiffinio symbolau lluosog yn y llinell orchymyn. Cefnogir ffurf gyfyngedig o rifyddeg ar gyfer yr ymadrodd yn y cyd-destun hwn: efallai y byddwch yn rhoi cyson hecsadegol neu enw symbol sy'n bodoli eisoes, neu ddefnyddio "+" a "-" i ychwanegu neu dynnu cyfansoddion neu symbolau hecsadegol. Os oes angen ymadroddion mwy cymhleth arnoch, ystyriwch ddefnyddio'r iaith gorchymyn cyswllt rhwng sgript. Sylwer: ni ddylai fod lle gwyn rhwng symbol , yr arwydd cydradd (`` = ''), a mynegiant .

--demangle [= arddull ]

--no-demangle

Mae'r opsiynau hyn yn rheoli p'un ai i ddynodi enwau symbolau mewn negeseuon gwall ac allbwn arall. Pan fo'r cysylltydd yn cael ei ddweud wrth demangle, mae'n ceisio cyflwyno enwau symbolaidd mewn ffasiwn y gellir ei ddarllen: mae stribedi sy'n arwain yn tanlinellu os ydynt yn cael eu defnyddio gan fformat y ffeil gwrthrych, ac yn trosi enwau C + + symbolau mewn enwau darllenadwy. Mae gan wahanol gompilers ddulliau gwahanol o fwydo. Gall y ddadl arddull demandling ddewisol gael ei ddefnyddio i ddewis arddull ymgynnull briodol i'ch compiler. Bydd y cysylltydd yn demanglo yn ddiofyn oni bai fod y newidyn amgylchedd COLLECT_NO_DEMANGLE wedi'i osod. Gellir defnyddio'r opsiynau hyn i orchuddio'r rhagosodiad.

--dynamic-linker file

Gosod enw'r cysylltydd deinamig. Mae hyn yn ystyrlon yn unig wrth gynhyrchu gweithrediadau ELF sy'n gysylltiedig yn ddeinamig. Mae'r cysylltydd dynamig diofyn fel rheol yn gywir; Peidiwch â defnyddio hyn oni bai eich bod chi'n gwybod beth rydych chi'n ei wneud.

- adleoli -embedded

Mae'r opsiwn hwn ond yn ystyrlon wrth gysylltu cod PIC wedi'i fewnosod MIPS, a gynhyrchir gan yr opsiwn -membedded-pic i'r compiler GNU a'r cydosodwr. Mae'n achosi'r cysylltydd i greu bwrdd y gellir ei ddefnyddio ar amser rhedeg i adleoli unrhyw ddata a gafodd ei gychwyn yn ystadegol i werthoedd pwyntiau. Gweler y cod yn testuite / ld-empic am fanylion.

- rhybuddion arfau

Trin pob rhybudd fel camgymeriadau .

--force-exe-suffix

Gwnewch yn siŵr fod gan ffeil allbwn ali .exe.

Os nad oes ffeil ". Exe " neu " .dll " yn ffeil allbwn sy'n cael ei hadeiladu'n llwyddiannus, mae'r opsiwn hwn yn gorfodi'r cysylltydd i gopïo'r ffeil allbwn i un o'r un enw â rhagddodiad ".exe". Mae'r opsiwn hwn yn ddefnyddiol wrth ddefnyddio ffeiliau Unix heb eu moduro ar westeiwr Microsoft Windows, gan na fydd rhai fersiynau o Windows yn rhedeg delwedd oni bai ei fod yn dod i ben mewn rhagddodiad ".exe".

--no-gc-adrannau

--gc-adrannau

Galluogi casglu sbwriel o adrannau mewnbwn nas defnyddiwyd. Caiff ei anwybyddu ar dargedau nad ydynt yn cefnogi'r opsiwn hwn. Nid yw'r opsiwn hwn yn gydnaws â -r , ac ni ddylid ei ddefnyddio gyda chysylltu deinamig. Gellir adfer yr ymddygiad diofyn (o beidio â pherfformio'r casgliad sbwriel hwn) trwy nodi --no-gc-sections ar y llinell orchymyn.

- help

Argraffwch grynodeb o'r opsiynau ar-lein ar yr allbwn safonol ac ymadael.

--goed-help

Argraffwch grynodeb o'r holl opsiynau targed penodol ar yr allbwn safonol ac ymadael.

-Map mapfile

Argraffwch fap cyswllt i'r ffeil map ffeil. Gweler y disgrifiad o'r opsiwn -M , uchod.

- na-gadw-cof

Fel arfer, mae ld yn gwneud y gorau o ran cyflymder dros ddefnyddio cof trwy gysgu tablau symbolau ffeiliau mewnbwn yn y cof. Mae'r opsiwn hwn yn dweud bod ld yn hytrach na gwneud y gorau o ran cof, trwy ail-ddarllen y tablau symbol yn ôl yr angen. Efallai y bydd angen gwneud hyn os bydd ld yn rhedeg allan o gof cof tra'n cysylltu gweithredadwy mawr.

- heb ei ddiffinio

-z defs

Fel arfer, wrth ganiatáu llyfrgell a rennir heb fod yn symbolaidd, caniateir symbolau heb ei ddiffinio ac fe'i datrysir gan y llwythwr runtime. Mae'r opsiynau hyn yn gwrthod symbolau heb eu diffinio o'r fath.

- diffiniad lluosog-lluosog

-z muldefs

Fel arfer, pan fo symbol yn cael ei ddiffinio sawl gwaith, bydd y cysylltydd yn adrodd am gamgymeriad marwol. Mae'r opsiynau hyn yn caniatáu diffiniadau lluosog a bydd y diffiniad cyntaf yn cael ei ddefnyddio.

--allow-shlib-undefined

Caniatáu symbolau heb eu diffinio mewn gwrthrychau a rennir hyd yn oed pan osodir --no-undefined. Y canlyniad net fydd y symbolau sydd heb eu diffinio mewn gwrthrychau rheolaidd yn dal i sbarduno camgymeriad, ond anwybyddir symbolau heb eu diffinio mewn gwrthrychau a rennir. Mae gweithredu no_finfined yn gwneud y rhagdybiaeth y bydd y cysylltydd runtime yn twyllo ar symbolau heb eu diffinio. Fodd bynnag, mae o leiaf un system (BeOS) lle mae symbolau heb eu diffinio mewn llyfrgelloedd a rennir yn normal gan fod y cnewyllyn yn eu troi ar amser llwyth i ddewis pa swyddogaeth sydd fwyaf priodol ar gyfer y bensaernïaeth gyfredol. Mae IE yn ddynamig yn dewis swyddogaeth memset priodol. Mae'n debyg ei fod hefyd yn arferol i lyfrgelloedd HPPA a rennir gael symbolau heb eu diffinio.

--no-undefined-version

Fel arfer, pan fydd gan symbol fersiwn heb ei ddiffinio, bydd y cysylltydd yn ei anwybyddu. Mae'r opsiwn hwn yn gwrthod symbolau gyda fersiwn heb ei ddiffinio a bydd gwall marwol yn cael ei gyhoeddi yn lle hynny.

- heb-rybuddio-anghytuno

Fel rheol, bydd ld yn rhoi camgymeriad os ydych chi'n ceisio cysylltu ffeiliau mewnbwn sydd wedi'u camgymharu am ryw reswm, efallai oherwydd eu bod wedi eu llunio ar gyfer proseswyr gwahanol neu ar gyfer gwahanol endianiaethau. Mae'r opsiwn hwn yn dweud wrth LD y dylai alluogi camgymeriadau posibl o'r fath yn dawel. Dim ond gyda gofal y dylid defnyddio'r opsiwn hwn, mewn achosion pan fyddwch wedi cymryd rhywfaint o gamau arbennig sy'n sicrhau bod y gwallau cyswllt yn amhriodol.

- ddim-archif cyfan

Diffoddwch effaith yr opsiwn archif --whole ar gyfer ffeiliau archifol dilynol.

--noinhibit-exec

Cadw'r ffeil allbwn cyflawnadwy pryd bynnag y gellir ei ddefnyddio o hyd. Fel arfer, ni fydd y cysylltydd yn cynhyrchu ffeil allbwn os bydd yn dod ar draws gwallau yn ystod y broses gyswllt; mae'n ymadael heb ysgrifennu ffeil allbwn pan fydd yn achosi unrhyw gamgymeriad o gwbl.

-nostdlib

Cyfeirlyfrau llyfrgell chwilio yn unig a bennir yn benodol ar y llinell orchymyn. Anwybyddir cyfeirlyfrau llyfrgell a nodir mewn sgriptiau cyswllt (gan gynnwys sgriptiau cysylltiol a bennir ar y llinell orchymyn).

--formform output -format

Gall ld gael ei ffurfweddu i gefnogi mwy nag un math o ffeil gwrthrych. Os yw eich ld wedi'i ffurfweddu fel hyn, gallwch ddefnyddio'r opsiwn --formform i bennu'r fformat deuaidd ar gyfer y ffeil gwrthrych allbwn. Hyd yn oed pan fydd ld wedi'i ffurfweddu i gefnogi fformatau gwrthrych amgen, nid oes raid i chi nodi hyn fel arfer, gan y dylid lunio ffurflenni ld i gynhyrchu fel fformat allbwn rhagosodedig y fformat mwyaf arferol ar bob peiriant. Mae allbwn-ffurf yn llinyn testun, enw fformat penodol a gefnogir gan lyfrgelloedd BFD. (Gallwch restru'r fformatau deuaidd sydd ar gael gyda objdump -i .) Gall y gorchymyn sgript "OUTPUT_FORMAT" hefyd nodi'r fformat allbwn, ond mae'r opsiwn hwn yn ei orchuddio.

-migig

Anwybyddir yr opsiwn hwn ar gyfer cydweddoldeb Linux.

-My

Anwybyddir yr opsiwn hwn ar gyfer cydweddedd SVR4.

--relax

Opsiwn gydag effeithiau dibynnol ar beiriant. Dim ond ar rai targedau y cefnogir yr opsiwn hwn.

Ar rai platfformau, mae'r opsiwn --relax yn perfformio optimizations byd-eang sy'n dod yn bosibl pan fydd y cysylltydd yn datrys yn y rhaglen, megis dulliau ymlacio a chyfsefydlu cyfarwyddiadau newydd yn y ffeil gwrthrych allbwn.

Ar rai platfformau, gall yr optimeiddiadau byd-eang hwn yr amser cyswllt wneud dadleuon symbolaidd o'r gweithredadwy sy'n amhosibl yn amhosibl. Gelwir hyn yn wir am y teulu proseswyr Matsushita MN10200 a MN10300.

Ar lwyfannau lle nad yw hyn yn cael ei gefnogi, derbynnir --relax , ond anwybyddir hynny.

- rhestr-symbolau-ffeil enw ffeil

Cadw dim ond y symbolau a restrir yn enw ffeil y ffeil , gan ddileu pob un arall. ffeil fflat yn unig yw enw'r ffeil, gydag un enw symbol fesul llinell. Mae'r opsiwn hwn yn arbennig o ddefnyddiol mewn amgylcheddau (fel VxWorks) lle mae tabl symbolau mawr yn cael ei gronni yn raddol, er mwyn gwarchod cof redeg.

Nid yw ffeil -tain-symbolau-ffeil yn diddymu symbolau heb eu diffinio, na symbolau sydd eu hangen ar gyfer adleoli.

Dim ond unwaith yn y llinell orchymyn y gallwch chi bennu - ffeil-symbolau-ffeil . Mae'n disgyn -s a -S .

-rpath dir

Ychwanegu cyfeiriadur at y llwybr chwilio llyfrgell runtime. Defnyddir hyn wrth gysylltu Eithriad Eithriadol â gwrthrychau a rennir. Mae'r holl ddadleuon llwybr yn cael eu crynhoi a'u pasio i'r cysylltydd runtime, sy'n eu defnyddio i ddod o hyd i wrthrychau a rennir ar amser redeg. Defnyddir yr opsiwn- lpath hefyd wrth leoli gwrthrychau a rennir sydd eu hangen gan wrthrychau a rennir a gynhwysir yn benodol yn y ddolen; gweler y disgrifiad o'r opsiwn -rpath-link . Os nad yw -rpath yn cael ei ddefnyddio wrth gysylltu gweithredadwy ELF, defnyddir cynnwys y newidyn amgylchedd "LD_RUN_PATH" os caiff ei ddiffinio.

Gellir defnyddio'r opsiwn- lpath hefyd ar SunOS. Yn ddiofyn, ar SunOS, bydd y cysylltydd yn ffurfio pecyn chwilio am amser allan o'r holl opsiynauL a roddir iddo. Os defnyddir opsiwn -rpath , bydd y llwybr chwilio am amser yn cael ei ffurfio yn unig gan ddefnyddio'r opsiynau -rpath , gan anwybyddu'r opsiynauL. Gall hyn fod yn ddefnyddiol wrth ddefnyddio gcc, sy'n ychwanegu llawer o opsiynauL a all fod ar systemau ffeiliau wedi'u gosod ar NFS.

I fod yn gydnaws â chysylltwyr ELF eraill, os yw'r enw cyfeirlyfr yn dilyn yr opsiwn -R , yn hytrach nag enw ffeil, caiff ei drin fel opsiwn -rpath .

-rpath-link DIR

Wrth ddefnyddio ELF neu SunOS, efallai y bydd angen un arall ar lyfrgell a rennir. Mae hyn yn digwydd pan fo cyswllt "ld -shared" yn cynnwys llyfrgell a rennir fel un o'r ffeiliau mewnbwn.

Pan fydd y cyswlltwr yn dod o hyd i'r fath ddibyniaeth wrth wneud cyswllt heb ei rannu, na ellir ei ail-leoli, bydd yn ceisio dod o hyd i'r llyfrgell a rennir yn ofynnol a'i gynnwys yn y cyswllt, os nad yw wedi'i gynnwys yn eglur. Mewn achos o'r fath, mae'r opsiwn -rpath-link yn nodi'r set gyntaf o gyfeiriaduron i'w chwilio. Gall yr opsiwn -path-link bennu dilyniant o enwau cyfeirlyfr naill ai drwy nodi rhestr o enwau wedi'u gwahanu gan eiconau, neu trwy ymddangos yn aml.

Dylai'r opsiwn hwn gael ei ddefnyddio gyda rhybudd gan ei fod yn goresgyn y llwybr chwilio a allai fod wedi ei gasglu'n galed mewn llyfrgell a rennir. Mewn achos o'r fath, mae'n bosibl defnyddio llwybr chwilio gwahanol yn anfwriadol nag y byddai'r cysylltydd runtime yn ei wneud.

Mae'r cysylltydd yn defnyddio'r llwybrau chwilio canlynol i ddod o hyd i lyfrgelloedd sydd eu hangen ar y cyd.

1.

Unrhyw gyfeirlyfrau a bennir gan opsiynau cyswllt -rpath-link .

2.

Unrhyw gyfeirlyfrau a bennir gan opsiynau- lpath . Y gwahaniaeth rhwng -rpath a -rpath-link yw bod y cyfeirlyfrau a bennir gan opsiynau- lpath yn cael eu cynnwys yn y gweithredadwyadwy a'u defnyddio ar amser redeg, tra bod yr opsiwn -rpath-link yn effeithiol yn unig adeg amser cyswllt. Dim ond i'r cysylltydd brodorol.

3.

Ar system ELF, pe na bai'r opsiynau -rpath a'r "rpath-link" yn cael eu defnyddio, chwiliwch gynnwys y newidyn amgylchedd "LD_RUN_PATH". Dim ond i'r cysylltydd brodorol.

4.

Ar SunOS, pe na bai'r opsiwn -rpath yn cael ei ddefnyddio, chwiliwch unrhyw gyfeiriaduron a bennir gan ddefnyddio -L opsiynau.

5.

Ar gyfer cysylltydd brodorol, cynnwys y newidyn amgylchedd "LD_LIBRARY_PATH".

6.

Ar gyfer cysylltydd ELF brodorol, mae'r cyfeiriaduron yn "DT_RUNPATH" neu "DT_RPATH" o lyfrgell a rennir yn cael eu chwilio am lyfrgelloedd a rennir sydd eu hangen. Anwybyddir y cofnodion "DT_RPATH" os oes cofnodion "DT_RUNPATH" yn bodoli.

7.

Y cyfeirlyfrau diofyn, fel arfer / lib a / usr / lib .

8.

Ar gyfer cysylltydd brodorol ar system ELF, os yw'r ffeil /etc/ld.so.conf yn bodoli, rhestr y cyfeirlyfrau a geir yn y ffeil honno.

Os na ddarganfyddir y llyfrgell a rennir gofynnol, bydd y cysylltydd yn cyhoeddi rhybudd a pharhau â'r ddolen.

ar-lein

-Drinadwy

Creu llyfrgell wedi'i rannu. Ar hyn o bryd dim ond ar lwyfannau ELF, XCOFF a SunOS y cefnogir hyn. Ar SunOS, bydd y cysylltydd yn creu llyfrgell a rennir yn awtomatig os nad yw'r opsiwn -e yn cael ei ddefnyddio a bod symbolau heb eu diffinio yn y ddolen.

--sort-common

Mae'r opsiwn hwn yn dweud ld i ddidoli'r symbolau cyffredin yn ôl maint pan fydd yn eu gosod yn yr adrannau allbwn priodol. Dechreuwch bob un o'r symbolau byte un, yna pob un o'r byte, yna'r pedwar byte, ac yna popeth arall. Mae hyn i atal bylchau rhwng symbolau oherwydd cyfyngiadau alinio.

--split-by-file [ maint ]

Yn debyg i --split-by-reloc ond yn creu adran allbwn newydd ar gyfer pob ffeil fewnbwn pan gyrhaeddir maint . maint yn rhagflaenu i faint o 1 os na roddir.

--split-by-reloc [ count ]

Yn ceisio creu adrannau ychwanegol yn y ffeil allbwn fel na fydd unrhyw adran allbwn yn y ffeil yn cynnwys mwy na chyfleoedd ailosod. Mae hyn yn ddefnyddiol wrth gynhyrchu ffeiliau enfawr y gellir eu symud y gellir eu lawrlwytho i mewn i rai cnewyllyn amser real gyda fformat ffeil gwrthrych COFF; gan fod COFFcannot yn cynrychioli mwy na 65535 o adleoli mewn un adran. Sylwch na fydd hyn yn methu â gweithio gyda fformatau ffeiliau gwrthrych nad ydynt yn cefnogi adrannau mympwyol. Ni fydd y cysylltydd yn rhannu adrannau mewnbwn unigol i'w ailddosbarthu, felly os bydd un adran fewnbwn yn cynnwys ailosodiadau cyfrif, bydd un adran allbwn yn cynnwys bod llawer o adleoli. cyfrifwch ddiffygion i werth o 32768.

--stats

Cyfrifwch ac arddangos ystadegau am weithrediad y cysylltydd, megis amser gweithredu a defnyddio cof.

- fformat hirradd

Ar gyfer rhai targedau, mae allbwn ld yn wahanol mewn rhai ffyrdd o allbwn rhai cysylltydd presennol. Mae hyn yn newid ceisiadau am ld i ddefnyddio'r fformat traddodiadol yn lle hynny.

Er enghraifft, ar SunOS, mae ld yn cyfuno cofnodion dyblyg yn y tabl llinyn symbol. Gall hyn leihau maint ffeil allbwn gyda gwybodaeth ddadgwyddo llawn gan dros 30 y cant. Yn anffodus, ni all rhaglen "dbx" SunOS ddarllen y rhaglen sy'n deillio ohono ("gdb" heb unrhyw drafferth). Mae'r switsh -draditional-format yn dweud ld i beidio â chyfuno cofnodion dyblyg.

--section-start sectionname = org

Darganfyddwch adran yn y ffeil allbwn yn y cyfeiriad absoliwt a roddir gan org . Gallwch ddefnyddio'r opsiwn hwn gymaint o weithiau fel bo'r angen i leoli nifer o adrannau yn y llinell orchymyn. Rhaid i org fod yn gyfan gwbl hecsadegol; er mwyn cydweddu â chysylltwyr eraill, efallai y byddwch yn hepgor y 0x blaenllaw sy'n gysylltiedig â gwerthoedd hecsadegol fel arfer. Sylwer: ni ddylai fod lle gwyn rhwng enw'r adran , yr arwydd cydradd (`` = ''), ac org .

-Tss org

-Data org

-Ttext org

Defnyddiwch org fel y cyfeiriad cychwyn ar gyfer --- yn y drefn honno --- y "bss", "data", neu'r segment "testun" o'r ffeil allbwn. Rhaid i org fod yn gyfan gwbl hecsadegol; er mwyn cydweddu â chysylltwyr eraill, efallai y byddwch yn hepgor y 0x blaenllaw sy'n gysylltiedig â gwerthoedd hecsadegol fel arfer.

--dll-verbose

--verbose

Arddangoswch y rhif fersiwn ar gyfer ld a rhestrwch y emulations sy'n cael eu cefnogi. Dangoswch pa ffeiliau mewnbwn y gellir ac na ellir eu hagor. Dangoswch y sgript cysylltydd sy'n cael ei ddefnyddio gan y cysylltydd.

--version-script = version-scriptfile

Nodwch enw sgript fersiwn i'r cysylltydd. Fel rheol, defnyddir hyn wrth greu llyfrgelloedd a rennir i nodi gwybodaeth ychwanegol am yr heirarchy fersiwn ar gyfer y llyfrgell sy'n cael ei greu. Mae'r opsiwn hwn ond yn ystyrlon ar lwyfannau ELF sy'n cefnogi llyfrgelloedd a rennir.

--warn-gyffredin

Rhowch wybod pan gyfunir symbol cyffredin â symbol cyffredin arall neu gyda diffiniad symbol. Mae cysylltwyr Unix yn caniatįu hyn yn arfer braidd braidd, ond nid yw cysylltwyr ar rai systemau gweithredu eraill yn gwneud hynny. Mae'r opsiwn hwn yn eich galluogi i ddod o hyd i broblemau posibl rhag cyfuno symbolau byd-eang. Yn anffodus, mae rhai llyfrgelloedd C yn defnyddio'r arfer hwn, felly efallai y cewch rai rhybuddion am symbolau yn y llyfrgelloedd yn ogystal ag yn eich rhaglenni.

Mae tri math o symbolau byd-eang, a ddangosir yma gan enghreifftiau C:

int i = 1;

Diffiniad, sy'n mynd i mewn i adran ddata gwreiddiol y ffeil allbwn.

allanol;

Cyfeirnod heb ei ddiffinio, nad yw'n dyrannu lle. Rhaid bod naill ai'n ddiffiniad neu'n symbol cyffredin ar gyfer y newidyn rywle.

int i;

Symbol cyffredin. Os mai dim ond un (mwy neu fwy) o symbolau cyffredin ar gyfer newidyn, mae'n mynd yn yr ardal ddata heb ei ddatganoli o'r ffeil allbwn. Mae'r cysylltydd yn cyfuno symbolau cyffredin lluosog ar gyfer yr un newidyn i mewn i un symbol. Os ydynt o wahanol feintiau, mae'n dewis y maint mwyaf. Mae'r cysylltydd yn troi symbol cyffredin i mewn i ddatganiad, os oes diffiniad o'r un newidyn.

Gall yr opsiwn --warn-gyffredin gynhyrchu pum math o rybudd. Mae pob rhybudd yn cynnwys pâr o linellau: mae'r cyntaf yn disgrifio'r symbol a wynebwyd yn unig, ac mae'r ail yn disgrifio'r symbol blaenorol a wynebwyd gyda'r un enw. Bydd un neu'r ddau o'r symbolau yn symbol cyffredin.

1.

Troi symbol cyffredin i mewn i gyfeiriad, gan fod diffiniad eisoes ar gyfer y symbol.

(
): warning: common of ` 'wedi'i orchymyn gan ddiffiniad (
): rhybudd: diffiniwyd yma

2.

Troi symbol cyffredin i mewn i gyfeiriad, oherwydd bod diffiniad diweddarach ar gyfer y symbol yn dod i'r amlwg. Mae hyn yr un peth â'r achos blaenorol, ac eithrio bod y symbolau yn dod ar draws mewn trefn wahanol.

(
): warning: definition of ` 'overriding common (
): warning: common is here

3.

Cyfuno symbol cyffredin gyda symbol cyffredin un maint o faint.

(
): warning: multiple common of ` ' (
): warning: common common is here

4.

Cyfuno symbol cyffredin gyda symbol cyffredin mwy cynharach.

(
): rhybudd: cyffredin o ` 'wedi'i diystyru gan cyffredin mwy (): rhybudd: cyffredin mwy yw yma

5.

Cyfuno symbol cyffredin gyda symbol cyffredin llai cynharach. Mae hyn yr un peth â'r achos blaenorol, ac eithrio bod y symbolau yn dod ar draws mewn trefn wahanol.

(
): warning: common of ` 'overriding less common (
): warning: less common is here

--warn-constructors

Rhowch wybod os defnyddir unrhyw adeiladwyr byd-eang. Mae hyn ond yn ddefnyddiol ar gyfer ychydig o fformatau ffeiliau gwrthrych. Ar gyfer fformatau fel COFF neu ELF, ni all y cyswlltwr ddarganfod defnydd adeiladwyr byd-eang.

--warn-lluosog-gp

Rhowch wybod a oes angen gwerthoedd pwyntydd byd-eang lluosog yn y ffeil allbwn . Mae hyn ond yn ystyrlon ar gyfer proseswyr penodol, megis Alpha. Yn benodol, mae rhai proseswyr yn rhoi cwmnļau gwerthfawr mewn adran arbennig. Mae cofrestr arbennig (y pwyntydd byd-eang) yn pwyntio i ganol yr adran hon, fel y gellir llwytho cysonion yn effeithlon trwy ddull cyfeirio cymharol y gofrestr sylfaenol. Gan fod y modd cymharol yn y gofrestr sylfaenol yn sefydlog ac yn gymharol fach (ee, 16 bit), mae hyn yn cyfyngu ar faint mwyaf y pwll cyson. Felly, mewn rhaglenni mawr, mae'n aml y bydd angen defnyddio gwerthoedd pwyntydd lluosog byd-eang er mwyn gallu mynd i'r afael â phob cysondeb posibl. Mae'r opsiwn hwn yn achosi rhybudd i'w gyhoeddi pryd bynnag y bydd yr achos hwn yn digwydd.

--warn-unwaith

Rhybuddiwch unwaith am bob symbol heb ei ddiffinio, yn hytrach nag unwaith y modiwl sy'n cyfeirio ato.

--warn-adran-alinio

Rhybuddiwch os yw cyfeiriad adran allbwn yn cael ei newid oherwydd aliniad. Yn nodweddiadol, bydd yr alinio yn cael ei osod gan adran fewnbwn. Dim ond os na nodir yn benodol y bydd y cyfeiriad yn cael ei newid; hynny yw, os nad yw'r gorchymyn "ADRANAU" yn nodi cyfeiriad cychwyn ar gyfer yr adran.

- archifdy

Ar gyfer pob archif a grybwyllir ar y llinell orchymyn ar ôl yr opsiwn --whole-archive , dylech gynnwys pob ffeil wrthrych yn yr archif yn y ddolen, yn hytrach na chwilio'r archif ar gyfer y ffeiliau gwrthrych angenrheidiol. Fel rheol, defnyddir hwn i droi ffeil archif i mewn i lyfrgell a rennir, gan orfodi pob gwrthrych i'w gynnwys yn y llyfrgell a rennir yn sgil hynny. Gellir defnyddio'r opsiwn hwn fwy nag unwaith.

Dau nodyn wrth ddefnyddio'r opsiwn hwn o gcc: Yn gyntaf, nid yw gcc yn gwybod am yr opsiwn hwn, felly mae'n rhaid i chi ddefnyddio -Wl, -whole-archive . Yn ail, peidiwch ag anghofio ei ddefnyddio - Archif-heb-gyfan-gyfan ar ôl eich rhestr o archifau, oherwydd bydd gcc yn ychwanegu ei restr o archifau i'ch dolen ac efallai na fyddwch am i'r faner hon effeithio ar y rhain hefyd.

- symbol siglo

Defnyddiwch swyddogaeth lapio ar gyfer symbol . Bydd unrhyw gyfeiriad heb ei ddiffinio i symbol yn cael ei ddatrys i "__ wrap_symbol". Bydd unrhyw gyfeiriad heb ei ddiffinio i "__real_symbol" yn cael ei ddatrys i symbol .

Gellir defnyddio hyn i ddarparu gwasgwr ar gyfer swyddogaeth system. Dylai'r swyddogaeth lapio gael ei alw'n "__wrap_symbol". Os yw'n dymuno ffonio swyddogaeth y system, dylai alw "__ real_symbol".

Dyma enghraifft ddibwys:

void * __wrap_malloc (int c) {printf ("malloc a elwir gyda% ld \ n", c); dychwelyd __real_malloc (c); }

Os ydych chi'n cysylltu cod arall â'r ffeil hwn gan ddefnyddio --wrap malloc , yna bydd pob galwad i "malloc" yn galw'r swyddogaeth "__wrap_malloc" yn lle hynny. Bydd yr alwad i "__real_malloc" yn "__wrap_malloc" yn galw'r swyddogaeth "malloc" go iawn.

Efallai y byddwch am ddarparu swyddogaeth "__real_malloc" hefyd, fel y bydd cysylltiadau heb yr opsiwn --wrap yn llwyddo. Os gwnewch hyn, ni ddylech roi'r diffiniad o "__ real_malloc" yn yr un ffeil fel "__wrap_malloc"; os gwnewch chi, gall yr ymgynnydd ddatrys yr alwad cyn bod gan y cyswlltwr gyfle i'w lapio i "malloc".

- tagiau newydd-annibynadwy

- taflenni newydd-diffodd

Gall y cyswllt hwn greu'r tagiau deinamig newydd yn ELF. Ond efallai na fydd y systemau ELF hyn yn eu deall. Os ydych chi'n pennu - tagiau newydd-annibynadwy , bydd y tagiau deinamig yn cael eu creu yn ôl yr angen. Os ydych chi'n nodi - tagiau newydd-ddibynadwy , ni fydd tagiau deinamig newydd yn cael eu creu. Yn anffodus, nid yw'r tagiau deinamig newydd yn cael eu creu. Sylwch fod y dewisiadau hynny ar gael ar gyfer systemau ELF yn unig.

Mae'r cysylltydd AG i386 yn cefnogi'r opsiwn a ddewiswyd , sy'n golygu bod yr allbwn yn lyfrgell gysylltiedig â dynameg (DLL) yn hytrach na chyflawnadwy arferol. Dylech enwi'r allbwn "* .dll" pan fyddwch chi'n defnyddio'r opsiwn hwn. Yn ogystal, mae'r cysylltydd yn cefnogi'r ffeiliau safonol "* .def", y gellir eu pennu ar y llinell orchymyn cyswllt fel ffeil gwrthrych (mewn gwirionedd, dylai fod yn flaenorol ag archifau mae'n allforio symbolau, er mwyn sicrhau eu bod yn gysylltiedig â nhw, yn union fel ffeil gwrthrych arferol).

Yn ychwanegol at yr opsiynau sy'n gyffredin i bob targed, mae'r cysylltydd AG i386 yn cefnogi opsiynau llinell gorchymyn ychwanegol sy'n benodol i darged AG i386. Gall opsiynau sy'n cymryd gwerthoedd gael eu gwahanu oddi wrth eu gwerthoedd naill ai â gofod neu arwydd cyfartal.

--add-stdcall-alias

Os rhoddir hynny, bydd symbolau gydag amsugniad stdcall (@ nn ) yn cael eu hallforio fel-is a hefyd gyda'r ôl-ddodiad wedi'i dynnu allan.

- ffeil-ffeil ffeil

Defnyddiwch y ffeil fel enw ffeil i achub cyfeiriadau sylfaenol yr holl adleoli sydd eu hangen ar gyfer cynhyrchu DLLs gyda dlltool .

--dll

Creu DLL yn hytrach na chyflawnadwy yn rheolaidd. Efallai y byddwch hefyd yn defnyddio - rhannu neu bennu "LLYFRGELL" mewn ffeil ".def" penodol.

--enable-stdcall-fixup

- ddiffyg-stdcall-fixup

Os yw'r ddolen yn canfod symbol na all ei ddatrys, bydd yn ceisio gwneud `` cysylltu yn fuzzy '' trwy chwilio am symbol diffiniedig arall sy'n wahanol i fformat enw'r symbol (cdecl vs stdcall) a bydd yn datrys y symbol hwnnw trwy gysylltu i'r gêm. Er enghraifft, efallai y bydd y symbol heb ei ddiffinio "_foo" yn gysylltiedig â'r swyddogaeth "_foo @ 12", neu efallai y bydd y symbol heb ei ddiffinio "_bar @ 16" yn gysylltiedig â'r swyddogaeth "_bar". Pan fydd y cysylltwr yn gwneud hyn, mae'n argraffu rhybudd, gan ei bod fel rheol wedi methu â chysylltu, ond weithiau mae'n bosibl y bydd angen i'r nodwedd hon gael ei ddefnyddio. Os ydych chi'n pennu --enable-stdcall-fixup , mae'r nodwedd hon wedi'i alluogi'n llawn ac nid yw rhybuddion yn cael eu hargraffu. Os ydych chi'n pennu --disable-stdcall-fixup , mae'r nodwedd hon yn anabl ac ystyrir bod camgymeriadau o'r fath yn gamgymeriadau.

--export-all-symbols

Os rhoddir hynny, bydd yr holl ddynellau byd-eang yn y gwrthrychau a ddefnyddir i adeiladu DLL yn cael eu hallforio gan yr DLL. Sylwch mai dyma'r rhagosodiad os na fyddai unrhyw symbolau a allforir fel arall. Pan fydd symbolau'n cael eu hallforio'n benodol trwy ffeiliau DEF neu eu hallforio'n drwyadl trwy nodweddion swyddogaethol, y rhagosodiad yw peidio â allforio unrhyw beth arall oni bai bod yr opsiwn hwn yn cael ei roi. Sylwch na fydd y symbolau "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", ac "impure_ptr" yn cael eu hallforio yn awtomatig. Hefyd, ni chaiff symbolau a fewnforiwyd o DLLs eu hail-allforio, nac ni fydd symbolau yn pennu cynllun mewnol yr DLL, megis y rhai sy'n dechrau gyda "_head_" neu sy'n dod i ben gyda "_iname". Yn ogystal, ni fydd unrhyw symbolau o "libgcc", "libstd ++", "libmingw32", neu "crtX.o" yn cael eu hallforio. Ni fydd symbolau y mae eu henwau'n dechrau gyda "__rtti_" neu "__builtin_" yn cael eu hallforio, i helpu gyda C ++ DLLs. Yn olaf, mae rhestr helaeth o symbolau cygwin-preifat nad ydynt yn cael eu hallforio (yn amlwg, mae hyn yn berthnasol wrth adeiladu DLLs ar gyfer targedau cygwin).

Mae'r cygwin-eithrio hyn yn cynnwys: "_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 ", ac" amgylchedd ".

- symbol symbolau-eithrio-symbolau , ...

Yn dynodi rhestr o symbolau na ddylid eu hallforio yn awtomatig. Efallai y bydd enwau symbolau yn cael eu delimiti gan gomau neu geonau.

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

Yn dynodi rhestr o lyfrgelloedd archif y ni ddylid eu hallforio'n awtomatig o'r symbolau hynny. Efallai y bydd enwau llyfrgelloedd yn cael eu delimiti gan gomiau neu geonau. Mae nodi "--exclude-libs ALL" yn eithrio symbolau ym mhob llyfrgell archif o allforio awtomatig. Mae symbolau a restrir yn benodol mewn ffeil .def yn dal i gael eu hallforio, waeth beth yw'r opsiwn hwn.

- alinio ffeil

Nodwch yr aliniad ffeil. Bydd adrannau yn y ffeil bob amser yn dechrau ar ffeiliau offsets sy'n lluosrifau o'r rhif hwn. Mae hyn yn rhagflaenu i 512.

- wrth gefn

- gwarchodfa , ymrwymo

Nodwch faint o gof i warchodfa (ac yn ymrwymo'n ddewisol) i'w ddefnyddio fel haen ar gyfer y rhaglen hon. Mae'r rhagosodiad yn 1Mb wedi'i neilltuo, 4K wedi'i ymrwymo.

- gwerth sylfaenol-sylfaen

Defnyddiwch werth fel cyfeiriad sylfaenol eich rhaglen neu dll. Dyma'r lleoliad cof isaf a gaiff ei ddefnyddio pan fydd eich rhaglen neu'ch dll yn cael ei lwytho. Er mwyn lleihau'r angen i adleoli a gwella perfformiad eich dlls, dylai pob un fod â chyfeiriad sylfaenol unigryw a pheidio â gorgyffwrdd unrhyw ddlliau eraill. Y rhagosodiad yw 0x400000 ar gyfer executables, a 0x10000000 ar gyfer dlls.

--kill-at

Os rhoddir, bydd y rhagddodiad stdcall (@ nn ) yn cael ei dynnu oddi ar symbolau cyn eu hallforio.

--major-image-version value

Yn gosod y nifer fawr o'r `fersiwn delwedd ''. Yn methu â 1.

--major-os-version value

Yn gosod y nifer fawr o'r `` os fersiwn ''. Yn methu â 4.

- gwerth fformat-subsystem-fersiwn

Yn gosod y nifer fawr o'r `fersiwn subsystem ''. Yn methu â 4.

--miner-image-version value

Yn gosod y nifer fach o'r `fersiwn delwedd ''. Yn methu â 0.

- -miner-os-version gwerth

Yn gosod y mân nifer o'r `` os fersiwn ''. Yn methu â 0.

- gwerth fersiwn-subsystem-fersiwn

Yn gosod y nifer fach o'r `fersiwn subsystem ''. Yn methu â 0.

- ffeil allbwn-def

Bydd y cysylltydd yn creu'r ffeil ffeil a fydd yn cynnwys ffeil DEF sy'n cyfateb i'r DLL y mae'r cysylltydd yn ei gynhyrchu. Gellir defnyddio'r ffeil DEF hwn (y dylid ei alw'n "* .def") i greu llyfrgell mewnforio gyda "dlltool" neu gellir ei ddefnyddio fel cyfeiriad at symbolau a allforir yn awtomatig neu mewn gwirionedd.

- ffeil -implib

Bydd y cysylltydd yn creu'r ffeil ffeil a fydd yn cynnwys lib mewnforio sy'n cyfateb i'r DLL y mae'r cysylltydd yn ei gynhyrchu. Gellir defnyddio'r enw lib (a ddylid ei alw'n "* .dll.a" neu "* .a" i gysylltu cleientiaid yn erbyn y DLL a gynhyrchir; mae'r ymddygiad hwn yn ei gwneud hi'n bosibl sgipio cam creu llyfrgell fewnforio "dlltool" ar wahân.

--enable-auto-image-base

Dewiswch y ddelwedd ddelwedd yn awtomatig ar gyfer DLLs, oni bai bod un wedi'i bennu gan ddefnyddio'r ddadl "--image-base". Trwy ddefnyddio hash a gynhyrchir o'r enw enwau i greu canolfannau delwedd unigryw ar gyfer pob DLL, mae gwrthdrawiadau ac adleoli mewn cof a all oedi rhag gweithredu'r rhaglen yn cael eu hosgoi.

--disable-auto-image-base

Peidiwch â chreu sylfaen delwedd unigryw yn awtomatig. Os nad oes sylfaen ddelwedd wedi'i phenodi gan ddefnyddiwr ("--image-base") yna defnyddiwch y llwyfan diofyn.

--dll-search-prefix string

Wrth gysylltu dynamig i ddll heb lyfrgell fewnforio, chwilio am " .dll" yn hytrach na "lib .dll". Mae'r ymddygiad hwn yn caniatáu gwahaniaeth hawdd rhwng DLLs a adeiladwyd ar gyfer y gwahanol `` is-ffurfiau '': brodorol, cygwin, uwin, pw, ac ati. Er enghraifft, mae cychwlinau DLLs fel arfer yn defnyddio "--dll-search-prefix = cyg".

--enadwy-auto-fewnforio

Gwneud cysylltiad soffistigedig o "_symbol" i "__imp__symbol" ar gyfer mewnforion DATA o DLLs, a chreu'r symbolau tunking angenrheidiol wrth adeiladu'r llyfrgelloedd mewnforio gyda'r DATAexports hynny. Bydd hyn fel arfer yn 'gweithio'n unig' --- ond weithiau fe welwch y neges hon:

ni ellir mewnforio "variable" '. Darllenwch y dogfennau ar gyfer manylion "lliw-auto-fewnforio" ld ar gyfer manylion. "

Mae'r neges hon yn digwydd pan fo mynegiant (is) yn mynd i mewn i gyfeiriad a roddir yn y pen draw gan swm dau gyfystyr (tablau mewnforio Win32 yn unig yn caniatáu un). Gall achosion lle mae hyn ddigwydd yn cynnwys mynediad i feysydd aelod o newidynnau strwythur a fewnforiwyd o DLL, yn ogystal â defnyddio mynegai cyson i mewn i newidyn amrywiol a fewnforiwyd o DLL. Gall unrhyw amrywiad multiword (arrays, structs, long hir, ac ati) sbarduno'r cyflwr gwall hwn. Fodd bynnag, waeth beth yw'r union fath o ddata o'r newidyn allforio troseddol, bydd LD bob amser yn ei ddarganfod, yn rhoi'r rhybudd, ac yn gadael.

Mae sawl ffordd o fynd i'r afael â'r anhawster hwn, waeth beth yw math data'r newidyn allforio:

Un ffordd yw defnyddio switsh -enable-runtime-pseudo-reloc. Mae hyn yn gadael y dasg o addasu cyfeiriadau yn eich cod cleient ar gyfer yr amgylchedd runtime, felly mae'r dull hwn yn gweithio dim ond pan fydd perygl o redeg yn cefnogi'r nodwedd hon.

Ail ateb yw gorfodi un o'r 'constants' i fod yn amrywiol - hynny yw, yn anhysbys ac yn anhygoelladwy wrth amser casglu. Ar gyfer arrays, mae dau bosibilrwydd: a) gwneud y mynegai (cyfeiriad y sefydliad) yn amrywiol, neu b) gwneud y mynegai 'cyson' yn amrywiol. Felly:

allanol type extern_array []; extern_array [1] -> {math gyfnewidiol * t = extern_array; t [1]}

neu

allanol type extern_array []; allanol_array [1] -> {cyfnewidiol t t = 1; allanol_array [t]}

Ar gyfer strwythurau (a'r rhan fwyaf o fathau o ddata aml-drefn eraill) yr unig opsiwn yw gwneud y strwythur ei hun (neu'r hir hir, neu'r ...) newidyn:

strwythur allanol allanol; extern_struct.field -> {strwythur gyfnewid s * t = & extern_struct; t> maes}

neu

allanol allanol hir hir; extern_ll -> {hir hir hir * local_ll = & extern_ll; * local_ll}

Trydydd ddull o ymdrin â'r anhawster hwn yw rhoi'r gorau i 'auto-fewnforio' ar gyfer y symbol troseddol a'i farcio â "__declspec (dllimport)". Fodd bynnag, yn ymarferol, mae'n rhaid defnyddio #defines amserlen gasglu i nodi a ydych yn adeiladu DLL, cod cod cleient sy'n cysylltu â'r DLL, neu yn adeiladu / cysylltu â llyfrgell sefydlog yn unig. Wrth wneud y dewis rhwng y gwahanol ddulliau o ddatrys problem 'cyfeiriad uniongyrchol gyda gwrthbwyso cyson', dylech ystyried y defnydd nodweddiadol o'r byd go iawn:

Gwreiddiol:

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

Ateb 1:

--foo.h allanol int arr []; --foo.c #include main "foo.h" void main (int argc, char ** argv) {/ * Mae'r gwaith hwn ar gyfer win32 a cygwin; peidiwch â "optimeiddio" * / ansefydlog int * parr = arr; printf ("% d \ n", parr [1]); }

Ateb 2:

--foo.h / * Nodyn: tybir bod auto-allforio (dim __declspec (dllexport)) * / #if (diffiniedig (_WIN32) || a ddiffiniwyd (__ CYGWIN__)) && \! (diffiniedig (FOO_BUILD_DLL) || a ddiffiniwyd (FOO_STATIC )) #define FOO_IMPORT __declspec (dllimport) #else #define FOO_IMPORT #endif allanol FOO_IMPORT int arr []; --foo.c #include main foo.h "void main (int argc, char ** argv) {printf ("% d \ n ", arr [1]); }

Pedwerydd ffordd i osgoi'r broblem hon yw ailgyfeirio eich llyfrgell i ddefnyddio rhyngwyneb swyddogaethol yn hytrach na rhyngwyneb data ar gyfer y newidynnau troseddol (ee set_foo () a get_foo () functions accessor).

--disable-auto-import

Peidiwch â cheisio cysylltu "_symbol" yn soffisticalted i "__imp__symbol" ar gyfer DATAimports o DLLs.

--enadwy-runtime-ffug-adleoli

Os yw'ch cod yn cynnwys ymadroddion a ddisgrifir yn yr adran --enable-auto-import, hynny yw, DATAimports o DLL gyda gwrthbwyso di-sero, bydd y newid hwn yn creu fector o 'adsefydlu ffug redeg' y gellir ei ddefnyddio gan yr amgylchedd runtime i addasu cyfeiriadau i ddata o'r fath yn eich cod cleient.

--disable-runtime-ffug-adleoli

Peidiwch â chreu adleoli ffug ar gyfer mewnforion DATA nad ydynt yn cael eu gwrthbwyso heb sero o DLLs. Dyma'r rhagosodedig.

--enable-extra-pe-debug

Dangos gwybodaeth debug ychwanegol sy'n gysylltiedig â thunking symbol auto-fewnforio.

- cysyniad-alinio

Yn gosod aliniad yr adran. Bydd adrannau yn y cof bob amser yn dechrau mewn cyfeiriadau sy'n lluosog o'r rhif hwn. Yn methu â 0x1000.

- gronfa wrth gefn

- gronfa wrth gefn , ymrwymo

Nodwch faint o gof i warchodfa (ac yn ymrwymo'n ddewisol) i'w ddefnyddio fel stack ar gyfer y rhaglen hon. Mae'r default yn 2Mb wedi'i neilltuo, 4K wedi'i ymrwymo.

--subsystem sy'n

--subsystem sy'n : prif

--subsystem sy'n : prif . mân

Yn dynodi'r is-system y bydd eich rhaglen yn ei gyflawni o dan y rhaglen honno. Y gwerthoedd cyfreithiol sy'n "frodorol", "ffenestri", "consol", a "posix". Efallai y byddwch yn gosod y fersiwn is-system hefyd yn ddewisol.

Pwysig: Defnyddiwch y gorchymyn dyn ( % man ) i weld sut mae gorchymyn yn cael ei ddefnyddio ar eich cyfrifiadur penodol.