Linux / Unix Command: Id

ZITA

ld - Kushandisa LD , GNU linker

SYNOPSIS

ld [ options ] objfile ...

DESCRIPTION

ld inobatanidza nhamba yezvimwe zvinhu uye mafaira ekuchengetedza, kusunungura data yavo uye kusungiridza zviratidzo zvinyorwa. Kazhinji kacho yekupedzisira pakunyoresa purogiramu ndokumhanya ld .

ld inogamuchira Linker Command Mafaira eMutauro akanyorwa mune superset yeAT & T's Link Editor Command Language syntax, kuti ataure zvakajeka uye zvakakwana kutungamira nzira yekubatanidza.

Iri peji peji haritsananguri mutauro wemirairo; ona mutemo ld mu "info", kana bhuku ld: GNU linker, kuti uwane mashoko akazara pamusoro pemutauro wemirairo uye pane zvimwe zvikamu zveGNU linker.

Iyi shanduro ye ld inoshandisa chinangwa chikuru BFD mabhuku ekushanda pane zvidhina. Izvi zvinobvumira ld kuverenga, kubatanidza, uye kunyora mafaira ezvinhu mumhando dzakasiyana-siyana -kuda, COFF kana "a.out". Kusiyana kwakasiyana kunogona kubatanidza pamwechete kuti kubudise chero ipi zvayo inowanikwa yefaira faira.

Kunze kwekushandura kwayo, GNU linker inobatsira kupfuura dzimwe hubatanidza mukupa ruzivo rwekuongorora. Vakawanda vanobatana vanosiya kuurayiwa pakarepo pavanosangana nekanganiso; chero zvichibvira, ld rinoramba richiita, richibvumira kuti uzive zvimwe zvikanganiso (kana, mune dzimwe mamiriro ezvinhu, kuti uwane purogiramu yacho pasinei nekukanganisa).

Iyo GNU linker ld inoreva kureva huwandu hwakawanda hwemamiriro ezvinhu, uye kuti iite seyanobvumirana sezvinobvira pamwe nezvimwe zvibatanidza. Somugumisiro, iwe une zvisarudzo zvakawanda zvekutonga maitiro ake.

MASHOKO

The linker inotsigira plethora yemirayiro-mutsara , asi chaizvoizvo miitiro zvishoma zvayo inoshandiswa mune chero mamiriro akasiyana. Semuenzaniso, kushandiswa kazhinji kwe ld ndiko kubatanidza mafaira akawandisa e Unix pane imwechete, inotsigirwa Unix system . Pamutambo wakadaro, kubatanidza faira "hello.o":

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

Izvi zvinoudza ld kuti ibudise faira inonzi yakabudiswa semugumisiro wekubatanidza faira "/lib/crt0.o" ne "hello.o" uye laraibhurari "libc.a", iyo ichauya kubva pane zvinyorwa zvitsva zvekutsvaga. (Ona kukurukurirana kwe -- sarudzo pasi apa.)

Mimwe yemirairo-mutsara yemirairo kune ld inogona kutaurwa chero ipi zvayo mumutsetse wemirairo. Zvisinei, zvisarudzo zvinoreva mafaira, zvakadai se-- i kana -T , ita kuti faira iverengwe pane imwe nguva iyo inosarudzwa inowanikwa mumutsetse wemirairo, maererano neiyo mafaira uye mamwe mafaira emafaira. Kudzokorora kusarudzwa kwemafaira nemakakatanwa akasiyana hakuzove nemamwe maitiro, kana kupfuurira mberi zviitiko (izvo zvinowedzera kuruboshwe kumutsara wemirairo) zvekusarudza. Zvisarudzo zvingave zvakanyatsorondedzerwa zvinopfuura kamwe chete zvinoratidzwa mune tsanangudzo iri pasi apa.

Zvisiri-sarudzo zvipikisi zvipikisi zvisikwa kana zvinyorwa zvekuchengetedza zvinofanira kubatanidzwa pamwechete. Vanogona kutevera, kutangira, kana kusanganiswa nemitemo-mutsara-murairo, kunze kwekuti chinhu chinopikisa faira hachikwanisi kuiswa pakati pekusarudza uye nharo yayo.

Kazhinji link linker inoshandiswa pamwe nefaira imwe chinhu, asi iwe unogona kutsanangura mamwe mafaira emafuta ekupinza achishandisa -l , -R , uye script command language. Kana pasina mabhadhari ehurukuro ekugadzirisa zvachose anotsanangurwa, the linker haibvumi chero zvabuda, uye inopa mharidzo Hakuna mafaira ekupinza .

Kana iyo linker isingagoni kuona maitiro echo chinhu chakakoswa, ichafungidzira kuti iri shanduro script. Script inotsanangurwa nenzira iyi inoisa shanduro huru yekubatanidza inoshandiswa pakushamwaridzana (kana iri default linker script kana imwe inotsanangurwa nekushandisa -T ). Izvi zvinobvumira kuti linker isanganane nefaira inoratidzika sechinhu kana archive, asi chaizvoizvo inongorondedzera zvimwe zviratidzo, kana inoshandisa "INPUT" kana "GROUP" kutakura zvimwe zvinhu. Cherechedza kuti kujekesa script nenzira iyi kungoita kuti pave nekukurukurirana script; shandisai -T sarudzo yekutsvaga shanduro yakakwana script zvachose.

Nokuda kwezvasarudzo mazita avo ari tsamba imwe chete, sarudzo dzinopesana dzinofanira kunge dzichitevera tsamba yekusarudza pasina kupindira whitespace, kana kupiwa sezvikonzero zvakasiyana-siyana zvinotevera kutevera chisarudzo chinovada.

Kuti uwane mazita ayo mazita akawanda, imwe dash kana maviri inogona kutangira zita rekutsvaga; somuenzaniso, -kuita-chiratidzo uye -trace-chiratidzo zvakaenzana. Cherechedza - kune rimwechete kune rimwe murairo. Tsamba dzakawanda dzinyorwa dzinotanga nechezasi 'o' inogona kungotangirwa nemadhora maviri. Izvi zvinoderedza kusagadzikana ne-- o chisarudzo. Saka nemuenzaniso -omagic inogadzirisa zita refaira rinoita zvemashiripiti asi --omagic inotarisa mureza weNMAGIC pane zvakabuda.

Nhaurirano kune mabhuku akawanda-mavara anofanira kunge akaparadzaniswa kubva kune zita rekutsvaga nechiratidzo chechienzanidzo, kana kuti kupiwa sechikonzero chakatsaurwa pakarepo chinotevera chisarudzo chinovada. Semuenzaniso, - chirairo-chinonzi foo uye -trace-chiratidzo = foo yakaenzana. Mamwe mashoma mabheti mazita emazita akawanda-tsamba anogamuchirwa.

Cherechedza - kana iyo linker iri kutumirwa nenzira isina kururama, kuburikidza nemutyairi wekunyora (eg gcc ) ipapo zvese zvinosungirirwa mutsara wemirairo yekufananidza zvinofanira kufanirwa kufanirwa ne -Wl, (kana chero zvakakodzera kumufambi wekunyora) seizvi:

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

Izvi zvakakosha, nokuti kana zvisina kudaro purogiramu yekufambisa inogadzirisa inogona kudonha zvinyararire zvisungo zvekubatanidza, zvichiita kuti pave nehutano hwakaipa.

Heino tafura ye generic command line switches inogamuchirwa neGNU linker:

-a keyword

Iyi sarudzo inotsigirwa kuenderana kwe HP / UX. Iko shoko rinokosha rinofanira kunge riri rimwe remhando dzedare , archive , kana kusasirwa . -aarchive inoshanda zvakaenzana ne -Bstatic , uye mamwe maviri mazwi makuru anoshanda zvakaenzana ne -Bdynamic . Iyi sarudzo inogona kushandiswa nhamba ipi zvayo.

- Maumbirwo

--architecture = architecture

Mukusunungurwa kwazvino kweLd , sarudzo iyi inobatsira chete yeIntel 960 yemhuri yezvigadzirwa zvemagetsi. Mukurongwa uku kwekugadzira, nhaurirano yekuvakwa inoratidza chimiro chaicho mumhuri ye 960, zvichiita kuti dzimwe dzidzivirire uye kugadziridza gwaro rekuchengetedza-mabhuku.

Zuva remangwana rekubudisa ld rinogona kutsigira basa rakafanana kune dzimwe dzimba dzekuvakwa.

-b kupinda-mafomu

--format = kuiswa-mafomu

ld inogona kugadzirirwa kutsigira zvinopfuura rimwe rudzi rwechinhu faira. Kana yako ld yakagadzirirwa nenzira iyi, unogona kushandisa -b sarudzo kutsanangura mafaira ekubatana kwemafaira ebasa rekutsvaga anotevera sarudzo iyi kumutsara wemirairo. Kunyange kana ld yakagadzirirwa kutsigira zvimwe zvigadziro zvezvinhu, iwe hazviwanzodi kuti utaure izvi, sezvo ld inofanira kugadzirirwa kutarisira semafungiro asina kuiswa maitiro ayo anowanzoitwa pane imwe yemashini. purogiramu-mafomu ishoko rakatsetseka, zita romufananidzo wakatsigirwa nemataibhurari eBFD. (Unogona kutarisa bhari inowanika maitiro ne objdump -i .)

Iwe unogona kuda kushandisa sarudzo iyi kana iwe uchibatanidza mafaira neusingawanzogadzirika maitiro. Unogonawo kushandisa -b kuchinja mafaira zvakajeka (pakabatanidza mafaira akasiyana-siyana akasiyana-siyana), nekubatanidza -b kuiswa-fomu pamberi peboka rega rega mafaira mune mamwe maitiro.

Izvo zvisiri izvo zvinotorwa kubva pane zvakasiyana-siyana zve "GNUTARGET".

Unogonawo kutsanangura mafomu ekushandisa kubva pane script, uchishandisa mutemo "TARGET";

-c MRI-commandfile

--mri-script = MRI-commandfile

Nekuenderana nekubatanidza kunobudiswa neMRI, ld inogamuchira zvinyorwa zvinyorwa zvakanyorwa mune imwe nzira, inoregererwa mutauro wemirairo, yakatsanangurwa muMRI Compatible Script Files chikamu cheGNU ld zvinyorwa. Tumira mairi mafaira e-MRI nechisarudzo -c ; shandisai -T sarudzo yekushandisa zvinyorwa zvinyorwa zvakanyorwa mubasa-chinangwa ld script shanduro. Kana MRI-cmdfile isipo, ld inotarisa pane zvinyorwa zvinotsanangurwa neipi -I zvisarudzo.

-d

-dc

-dp

Izvi zvitatu zvisarudzo zvakaenzana; mhando dzakawanda dzinotsigirwa kuti dzienderane nedzimwe sangano. Vanopa nzvimbo kune zviratidzo zvakajairika kunyange kana relocatable output file inotsanangurwa (ne -r ). Mutemo we script "FORCE_COMMON_ALLOCATION" une mhinduro imwe chete.

-kupinda

--entry = kupinda

Shandisa chiyero sechiratidzo chinotsanangurwa chekutanga kupedza purogiramu yako, panzvimbo pekutsvaga kwekupinda. Kana pasina chimiro chinonzi kupinda , chibatanidza chichaedza kuisa sechiverengero, uye shandisa iyo seyero yekupinda (nhamba ichadudzirwa muchitsigiri 10; iwe ungashandisa 0x inotungamirira muchikwata che16, kana chinotungamirira 0 nokuda kwechitanhatu 8).

-E

--export-simba

Paunenge uine simba rinoshandiswa rinoshandiswa, wedzera zviratidzo zvose kune tafura yezvesimba. Itafura yekufananidzira yemufananidzo ndiyo yakagadzirirwa zviratidzo zvinowanikwa kubva kune zvinhu zvakaoma panguva yekumhanya.

Kana iwe usingashandisi sarudzo iyi, tafura yekufananidzira yemagetsi inowanzo iine zviratidzo chete izvo zvinotaurwa nezvimwe zvinhu zvinoshandiswa zvinotaurwa munhare.

Kana ukashandisa "dlopen" kuti uise chinhu chakasimba chinoda kutarisa kumashure zvinotsanangurwa nehurongwa, pane chimwe chinhu chinosimba, ipapo iwe uchada kushandisa sarudzo iyi paunenge uchibatanidza purogiramu yacho pachayo.

Iwe unogonawo kushandisa script script kuti uchengetedze kuti zvii zviratidzo zvinofanira kuwedzerwa pane dhiyabhorosi yemufananidzo wekuti kana kubudiswa kwemafaira kuchirichengetedza. Ona tsanangudzo ye - --version-script in @ ref {VERSION}.

-BEB

Link big-endian zvinhu. Izvi zvinokanganisa kushandiswa kwehuwandu hwemaitiro.

-EL

Bhinda zvishoma-endian zvinhu. Izvi zvinokanganisa kushandiswa kwehuwandu hwemaitiro.

-f

- zita rechipiri

Paunenge uumba ELF yakagoverwa chinhu, sarudza mukati DT_AUXILIARY munda kune zita rakananga. Izvi zvinoudza hukuru hunobatanidza kuti tafura yefananidzi yechinhu chakagoverwa inofanira kushandiswa seyamurasi yebetsero pane tafura yefananisi yezita rakagadzirirwa zita .

Kana iwe mushure mokubatanidza purogiramu iri pamusoro pechinhu ichi chefaira, zvino, kana iwe uchitanga purogiramu, simba rekubatanidza richaona munda weDT_AUXILIARY. Kana iyo linker inogadzirisa inogadzirisa chero zviratidzo kubva pane chinhu chinonzi firati, inotanga kuona kana pane tsanangudzo muzita rakagadzirirwa chinangwa. Kana pane imwe chete, inoshandiswa panzvimbo yekududzirwa muiyo chinhu chinonzi filter. Izvo zvakagadziriswa zita rekuti hazvifaniri kuvapo. Nokudaro zita rakagadziriswa zita rinogona kushandiswa kupa humwe kushandiswa kwemamwe mabasa, zvichida nokuda kwekugadzirisa kana kushandiswa kwemichina kushanda.

Ichi chisarudzo chingave chakataurwa kanopfuura kamwechete. Zvinyorwa zveDT_AUXILIARY zvichagadzirwa muhutano hwavanowanikwa pamutsetse wemirairo.

-F zita

- firipi zita

Paunenge uumba ELF yakagoverwa chinhu, sarudza mukati DT_FILTER munda kune zita rakananga. Izvi zvinoudza hukuru hunobatanidza kuti tafura yekufananidzira yechinhu chakagoverwa chirikusikwa inofanira kushandiswa sefriji pane tafura yefananidzi yezita rakagadzirirwa zita .

Kana iwe mushure mokubatanidza purogiramu iri pamusoro pechinhu ichi chefaira, zvino, kana iwe uchitanga purogiramu, simba rinobatanidza richaona munda weDT_FILTER. Iyo ingano yakasimba ichagadzirisa zviratidzo maererano neetafura yemufananisi yefriji chinhu sezvinowanzoitika, asi ichanyatsobatanidza kune tsanangudzo dzinowanika muzita rakagadzirirwa zita . Nokudaro icho chinhu chinoshandiswa chinogona kushandiswa kusarudza subset yezviratidzo zvinopiwa nezita rezita .

Vamwe vakwegura vakuru vakashandisa -F chisarudzo mukati mekugadzira toolchain kwekujekesa chinhu-faira mafomu yezvese zvakapinza uye zvakabuda zvinhu zvidhi. GNU linker inoshandisa dzimwe nzira dzechinangwa ichi: -b , --format , --oformat mazano, mutemo we "TARGET" muchikwata chekubatanidza, uye "GNUTARGET" shanduko yemamiriro ezvinhu. Iko GNU linker ichanyatsoteerera -F chisarudzo apo haisi kugadzira ELF yakagoverwa chinhu.

-fini zita

Paunenge uumba chinhu cheEF chinopikisa kana chakagoverana, dana NAME apo chinhu chinogona kugoverwa kana chakagoverwa chinosunungura, nekuisa DT_FINI kudivi rebasa racho. Nokusingaperi, the linker inoshandisa "_fini" semabasa ekudana.

-g

Ignored. Yakagadzirirwa kushamwaridzana nemamwe mabhuku.

-G kukosha

--gpsize = kukosha

Ita huwandu hukuru hwezvinhu kuti hugadziridzwe uchishandisa GP rejista kuhukuru . Izvi zvinongoreva zvakanakira zvigadziro zvefaira zvakadai seMIPS ECOFF iyo inotsigira kuisa zvinhu zvikuru nezviduku muzvikamu zvakasiyana. Izvi hazvina kufanirwa pane zvimwe zvifananidzo zvefaira.

-h zita

-soname = zita

Paunenge uumba ELF yakagoverwa chimwe chinhu, sarudza dhi mukati reDT_SONAME kune zita rakananga. Apo chinokonzerwa chinosanganiswa nechinhu chakagoverwa chine munda weDT_SONAME, zvino apo iyo inoshandiswa inoshandisa simba rinokurudzira richaedza kutakura chinhu chakagoverwa chinotsanangurwa nemunda weDT_SONAME panzvimbo yekushandisa zita refaira rakapiwa kune linker.

-i

Ita an incremental link (zvakafanana nesarudzo -r ).

-initi zita

Paunenge uumba chinhu cheEF chinoparadzanisa kana chakagoverana, dana NAME apo chinhu chinoitwa kana chakagoverwa chiri kutakurwa, nekuisa DT_INIT kukero yebasa. Nokusingaperi, the linker inoshandisa "_init" semabasa ekudana.

-l archive

--library = archive

Wedzera archive file file archive kune urongwa hwemafaira ekubatanidza. Iyi sarudzo inogona kushandiswa nhamba ipi zvayo. ld ichatsvaga nzira yaro-urongwa hwezviitiko zve "libarchive.a" yezvinyorwa zvose zvinotsanangurwa.

Pazvirongwa zvinotsigira mabhuku ekubatana, ld inogonawo kutsvaga makamuri mazita ane zvinyorwa kunze kwe ".a". Kunyanya, pane zvidzidzo zveElf uye SunOS, ld ichatsvaga bhuku reraibhurari rine kuwedzera kwe ".so" musati mutsvaga nekuwedzera kwe ".a". Nekokorodzano, ".so" kuwedzera kunoratidza bhaibheri rakagovana.

The linker ichatsvaga archive imwe chete, panzvimbo iyo inotsanangurwa pamutsara wemirairo. Kana iyo archive inotsanangura chiratidzo chakange chisingatsananguri mune chimwe chinhu chakaonekwa pamberi peiyo archive pamutsetse wemirairo, wekubatanidza achabatanidza faira yakakodzera (s) kubva pane zvakachengetwa. Zvisinei, chiratidzo chisinganzwisisiki pane chimwe chinhu chinowanikwa gare gare pamutsetse wemirairo hachizoiti kuti linker iongorore archive zvakare.

Ona i - ( sarudzo yeimwe nzira yekumanikidzira mubatanidzwa kuti atsvake archives kakawanda.

Iwe unogona kutarisa mazvinyorwa zvakafanana kakawanda pamutsetse wemirairo.

Rudzi urwu rwekuchengetedzwa kwekuchengetedzwa kwekuchengetedzwa kwekodzero inowanikwa neUnx links Zvisinei, kana uri kushandisa ld onAIX, cherechedza kuti yakasiyana nemafambiro eAIX linker.

-L tsvaga

--robary-path = searchdir

Wedzera nzira yekutsvaga kune urongwa hwemakwara ayo ld achatsvaga mabhuku e-archive uye ld script control. Iwe unogona kushandisa sarudzo iyi chero nhamba yezviitiko. Tsanangudzo dzinoongororwa muhurongwa hwavanenge vataurirwa pamutsara wemirairo. Zvinyorwa zvinotsanangurwa pamutsetse wemirayiro zvinotsvaga kusati kwasara zvinyorwa. Zvose -I zvisarudzo zvinoshandiswa kune vose -i zvingasarudzwa, zvisinei nokuti maitiro api anowanikwa.

Kana tsvakurudzo inotanga ne "=", ipapo "=" ichatsiviwa nechigadziro che sysroot , nzira inotsanangurwa kana chikwata ichigadzirirwa.

Izvo zvisingagadziriswa zvemigwagwa tsvakurudzwa (kunze kwekutsanangurwa ne -L ) kunotsamira kuti ndekupi kushandiswa kwemamiriro ekushandisa ld ari kushandiswa, uye mune dzimwe nguva zvakare kuti yakagadziridzwa sei.

Nzira idzi dzinogonawo kutsanangurwa mune imwe script link ne "SEARCH_DIR". Tsanangudzo yakatsanangurwa iyi nzira inotsvaga pane imwe nzvimbo iyo script linker inowanikwa mumutsetse wemirairo.

-m kuverenga

Edzai emulation linker. Iwe unogona kutarisa zvinowanikwa zviripo ne-- verbose kana -V zvisarudzo.

Kana iyo -m sarudzo isingashandiswi, kuburitsa kunotorwa kubva ku "LDEMULATION" kushanduka kwezvakatipoteredza, kana izvozvo zvichitsanangurwa.

Zvimwe zvisingaiti, kushandiswa kwezvisizvo kusingagumi kunoenderana nekusanganiswa kwokuti linker.

-M

mapiritsi-mapa

Dhinda mapikicha ekubatanidza kudivi rinobuda. Mepu yekubatanidza inopa ruzivo pamusoro pekubatana, kusanganisira zvinotevera:

*

Apo zvisikwa zvipi uye zviratidzo zvinonyorwa mumurangariro.

*

Zvimwe zviratidzo zvinowanzopiwa.

*

Zvose zvinyorwa zvekuchengetedza zvinosanganiswa muhutano, nekutaura kwechiratidzo chakakonzera nhengo yezvinyorwa kuti iiswe.

-n

--nmagic

Bvisa mapeji ekugadzirisa zvikamu, uye chengetedza zvabuda se "NMAGIC" kana zvichibvira.

-N

--omagic

Isai zvinyorwa uye zvinyorwa zvezvidimbu kuti zvigone kuverengwa uye zvinyorwa. Uyewo, usaisa peji-gadzirisa chikamu che data, uye kudzivisa kubatanidza pamabharara akagovana. Kana iyo yakabudiswa mafaira inobatsira Unix mavara magic manhamba, chengetedza yakabuda se "OMAGIC".

-no-omagic

Iyi sarudzo inopesana nemigumisiro yakawanda ye-- N chisarudzo. Inogadzirisa chikamu chikamu kuti chiverengwe-chega, uye chinokonzera chikamu che data kuti chive peji-yakabatana. Cherechedza - iyi sarudzo haibvumiri kubatanidza pamabharara akagovana. Shandisa -Bdynamic yeizvi.

-o zvakabuda

--output = output

Shandisa zvinobudiswa sezita rechirongwa rakabudiswa ne ld ; kana sarudzo iyi isingatauri, zita rokuti a.out rinoshandiswa nekusavapo. Iro script command "OUTPUT" inogonawo kutsanangura mazita ekubudiswa kwefaira.

-O nhare

Kana nhamba iri nhamba yepamusoro yakakura kudarika zero ld inogadzirisa zvakabuda. Izvi zvinogona kutora nguva yakareba uye naizvozvo zvichida zvinofanira kungobvumirwa chete kuti zvinyorwa zvekupedzisira.

-q

--emit-relocs

Siya kushandura zvikamu uye zviri mukati zvakakwana zvakabatana exececutables. Post link analysis nekugadzirisa zvishandiso zvingada ruzivo urwu kuitira kuti zviite kugadziridza kwakarurama kwekuita. Izvi zvinokonzera kushandiswa kukuru.

Iyi sarudzo ikozvino inotsigirwa chete paElf platforms.

-r

--relocateable

Itai kuti zvigadziriswe zvekare-kureva, kubudisa an output file iyo inogona kushandiswa sechipo kune ld . Izvi zvinowanzozonzi kusarura kusanganiswa . Sechikamu chemashure, mumamiriro ezvinhu anotsigira nhamba yeUnited magic nhamba, iyi sarudzo inogadzirisawo faira nhamba yemashiripiti ku "OMAGIC". Kana iri sarudzo isati yaiswa, faira yakakwana inogadzirwa. Paunobatanidza C ++ zvirongwa, sarudzo iyi haizogadziri zvinyorwa kune vavaki; kuti uite izvozvo, shandisa -Ur .

Apo fomu yekupindira haina mhando imwechete seyo purogiramu file, kushamwaridzana kwechikamu kunongotsigirwa chete kana iyo faira yekupinza isina chero kuchinjwa. Kusiyana kwakasiyana-siyana maitiro kunogona kuva nemimwe mitemo; somuenzaniso vamwe "a.out" -kusimbiswa kwemafomu haitsigire chikamu chekubatanidza nemafuta ekupinza mune mamwe maitiro zvachose.

Iyi sarudzo inoita chinhu chimwechete -ii .

-R filename

--just-symbols = filename

Verenga mazita ekufananidzira uye mazita avo kubva ku filename , asi usamudzosera kana kuisanganisira pane zvakabuda. Izvi zvinobvumira kuti purogiramu yako yefaira inyore zvakananga kune zvachose nzvimbo dzekurangarira zvinotsanangurwa mune mamwe mapurogiramu. Iwe unogona kushandisa sarudzo iyi kanopfuura kamwe.

Nokuenzanisa nevamwe ELF vanobatanidza, kana--sarudzo inoteverwa nezita rezita, panzvimbo yezita refaira, rinorapwa se -rpath chisarudzo.

-s

- shingaira-zvose

Tumira zvose zviratidzo zvemashoko kubva pane zvakabuda faira.

-S

- -riprip-debug

Ita debugger chizivo chemashoko (asi kwete zvose zviratidzo) kubva pakabuda faira.

-t

--trace

Shandisa mazita emafaira ekupinza sezvo ld inovatora.

-T scriptfile

- script = scriptfile

Scriptfile shandisa script link. Iyi script inotsiva ld 's default linker script (pane kuwedzera kwairi), saka commandfile inofanira kureva zvinhu zvose zvinodiwa kutsanangura yakabuda faira. Kana scriptfile isipo mune zvinyorwa zvemazuva ano, "ld" inoritsvaga mune zvinyorwa zvinotsanangurwa nemhando ipi zvayo yapfuura -L . Multiple -T zvisarudzo zvinowedzera.

-i chiratidzo

--undefined = chiratidzo

Shandisai chiratidzo kuti chizopinda mukati mechipfupa faira sechisingaenzaniswi. Kuita izvi kungave, somuenzaniso, kunotanga kubatanidza mamwe ma modules kubva mumabhuku ekuraira. -u inogona kudzokororwa nenzira yakasiyana-siyana nharo dzekupinza zvimwe zvisinganzwisisiki zviratidzo. Iyi sarudzo yakaenzana ne "EXTERN" linker script command.

-Ur

Kune chimwe chinhu kunze kwezvirongwa zveC ++, sarudzo iyi yakaenzana ne -r : iyo inoita kuti zvigadziriswe zvekare-kureva, iyo yakabudiswa file iyo inogona kushanda semuipi kune ld . Pakubatanidza C ++ zvirongwa, -Ur inogadzirisa zvinyorwa kune vavaki, kusiyana -r . Haiti kushandiswa kushandisa -Kuisa pane mafaira ayo aive akabatanidzwa ne -Ur ; kamwe kana tafura yekuvaka yakavakwa, haigoni kuwedzerwa. Shandisa- Kungoita chete kwekupedzisira kwechibatanidza , uye -r kune vamwe.

--unique [= CHIKAMU ]

Inoita chikamu chakasiyana chechikamu chezvikamu zvose zvekugovera chikamu chakafanana SECTION , kana kana sarcard yakasarudzwa SECTION argument isipo, pane chikamu chekupinza chero nherera. Chikamu chemherera chimwe chisati chataurwa zvakananga mune script linker. Iwe unogona kushandisa sarudzo iyi kazhinji pane mutsetse wemirairo; Izvo zvinodzivirira kuwirirana kwezvikamu zvezvikamu zvinowanikwa nezita rimwe chete, zvichiwedzera kubuda kwechikamu chezvikamu mune imwe linker script.

-v

--version

-V

Ratidza nhamba yevhesi ye ld . I -V chinyorwa chinonyorawo zvinyorwa zvinotsigirwa.

-x

- chengetedza-zvose

Dzinga zvose zviratidzo zvepakati.

-X

- kududzira-nzvimbo

Bvisa zvose zviratidzo zvenguva pfupi. Pamusoro pezvinangwa zvakawanda, izvi zvose zviratidzo zvekune mazita ayo anotanga naL .

-i chiratidzo

--trace-symbol = chiratidzo

Dhinda zita rega rega rekubatanidza file umo chiratidzo chinowanikwa. Izvi zvinogona kupiwa chero nhamba yezviitiko. Pamitemo yakawanda inofanirwa kutarisa kunyorera.

Iyi sarudzo inobatsira kana iwe une chiratidzo chisingafananidzi muhutano chako asi hauzivi kuti rinotaridzirwa rinobva kupi.

-Y nzira

Wedzera nzira kuenda kune yakakwana yekutsvaga mabhuku eraibhurari. Iyi nzira iripo yeSolaris yakafanana.

-z keyword

Izwi rinozivikanwa rinokosha "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "ikozvino", "kubva", "combreloc", "nocombreloc" uye "nocopyreloc ". Mamwe mazwi akadai haana kufanira kuenderana neSolaris. "initfirst" inoratidza chinhu chinotanga kuiswa pakutanga panguva yokumhanya zvisati zvaitika. "kupindira" inoratidza chinhu icho chidimbu chayo chekufananidzira chinopindirana pamberi pezviratidzo zvose asi iyo inonyanya kuraswa. "loadfltr" inoratidza chinhu icho tsvina yacho inoshandiswa pakarepo panguva yekumhanya. "nodefaultlib" inoratidza chinhu icho kutsvaga kwezvido zvechinhu ichi chero ipi zvayo yakachengetwa mabhuku ekutsvaga nzira. "nodelete" inoratidza chinhu ichocho hachifaniri kuregererwa panguva yekumhanya. "nodlopen" inoratidza chinhu chisingawaniki kuti "dlopen". "nodump" inoratidza chinhu chisingagoni kukanganiswa ne "dldump". "ikozvino" inoratidzira chinhu ichocho chisina usimbe chinosunga nguva. "mavambo" anoratidza chinhu chinogona kuva ne $ ORIGIN. "kuremekedza" hakubvumiri kusinganzwisisiki. "muldefs" inobvumira kutsanangurwa kwakawanda. "combreloc" inosanganisira zvikamu zvakasiyana-siyana zvekudzoka uye inozvienzanisa kuti iite simba rekutsvaga kubvisa caching kunogona.

"nocombreloc" inodzivisa zvikamu zvakasiyana-siyana zvekugadzirisa zvikamu. "nocopyreloc" inobvumira kubudiswa kwemabhuku ekudzoka.

- ( archives -)

-tsika-boka archives -end-boka

Nzvimbo dzekuchengetedza dzinofanira kuva runyorwa rwemafaira epakachengetwa . Zvinogona kuva mazita mazita akajeka, kana -- kusarudza.

Zvinyorwa zvinyorwa zvinotsvakurudzwa zvinoshandiswa kakawanda kusvikira pasina zvitsva zvisingatauri zvinyorwa zvisikwa. Kazhinji, archive inotsvaga kamwe chete muhutano iyo inotsanangurwa pamutsara wemirairo. Kana chiratidzo muzvinyorwa izvi zvichishandiswa kugadzirisa chiratidzo chisina kufananidzwa chinotaurwa nechinhu chiri muchikwata chekuchengetedza chinowanikwa gare gare pamutsara wemirairo, mubatanidzi haazokwanise kugadzirisa iyo tsanangudzo. Nokuisa mabhuku ezvinyorwa, ivo vose vanotsvakurudzwa kakawanda kusvikira zvose zvingangodzokorora zvigadziriswa.

Kushandisa sarudzo iyi ine basa rinokosha rekushanda. Zvakakosha kuishandura chete kana zvisingagoni kudzivirirwa zvinyorwa zvinyorwa pakati pezvinyorwa zviviri kana kupfuura.

- bvuma-asingazive-input-arch

- kwete-kugamuchira-asingazivi-inopinza-arch

Inotaurira iyo linker kugamuchira mafaira ekupinza ayo maitiro asingagoni kuonekwa. Iko kufungidzira ndechokuti musikana anoziva zvavari kuita uye nemaune anoda kushamwaridzana mune aya mafaira ekupinza asingazivikanwi. Ichi chaiva chiito chekutadza chekubatanidza, kusati kwasunungurwa 2.14. Nzira yekutadza kubva pakusunungurwa 2.14 zvichienda mberi ndeyokuramba mafaira ekupinza aya, uye naizvozvo -bvuma-asingazive-input-arch sarudzo yawedzerwa kuburitsa mararamiro ekare.

-assert keyword

Iyi sarudzo isingabvumirwi nekuenderana kweSunos .

-Bdynamic

-dy

-call_shared

Gadzirai kurwisana nemabhuku ekurasikirwa. Izvi zvinongoreva chete pamapuratifomu ayo akagovera mabhuku ekurasikirwa anotsigirwa. Iyi sarudzo inowanzosakirwa pamapuratifomu akadaro. Zvimwe zvakasiyana-siyana zvechisarudzo ichi ndezvekuenderana nemitemo yakasiyana-siyana. Iwe unogona kushandisa sarudzo iyi kakawanda pane mutsetse wemirairo: inobata pakabhanisi kutsvaga -i nzira dzinotevera.

-Broup

Isa "DF_1_GROUP" mureza mu "DT_FLAGS_1" kupinda muchikamu chinosimba. Izvi zvinokonzera runtime linker kuti ishande zvinyorwa mune chinhu ichi uye zvido zvayo zvinofanira kuitwa mukati meboka chete. -no-isina kufananidzwa inoreva. Iyi sarudzo inongobatsira chete paElf mapurisa anotsigira mabhuku akabatanidzwa .

-Bstatic

-dn

-non_shared

-static

Usanamatira pamatarenda akagovana. Izvi zvinongoreva chete pamapuratifomu ayo akagovera mabhuku ekurasikirwa anotsigirwa. Zvimwe zvakasiyana-siyana zvechisarudzo ichi ndezvekuenderana nemitemo yakasiyana-siyana. Iwe unogona kushandisa sarudzo iyi kakawanda pane mutsetse wemirairo: inobata pakabhanisi kutsvaga -i nzira dzinotevera.

-Bsymbolic

Paunenge uchigadzira raibhurari yakagoverwa, sunga zvinyorwa kune zviratidzo zvepasi rose kune tsanangudzo mukati meraibhurari yakagoverwa, kana iripo. Kazhinji, zvinobvira purogiramu yakabatana neraibhurari yakabatanidzwa kuti iwedzere kududzirwa mukati meraibhurari yakagoverwa. Iyi sarudzo inongova nechinangwa pane ELFplatforms inotsigira mairaibhurari akagoverwa.

--check-zvikamu

--no-check-sections

Inokumbira kuti mubatanidze kuti arege kutarisa mazita adhesi mushure mokunge vave vazoona kuti pane kune chekugumburwa. Kazhinji the linker ichaita cheki iyi, uye kana ikawana chero upi zvake huchaputika huchabereka maitiro akakodzera emapurogiramu. Iyo linker inoziva pamusoro, uye inobvumira zvikamu zvepamusoro. Izvozvo zvisingagoneki zvinogona kugadziriswa kuburikidza nekushandisa mutsetse wemirairo -cheche-zvikamu .

--cref

Kubudiswa kwemuchinjikwa referenta tafura. Kana musha wekubatanidza mapikisi uri kuve wakagadzirwa, danda rekufananidzira rekufa rinodhindwa kumapupa faira. Kana zvisina kudaro, inodhindwa pamutengo wakatarwa.

Mamiriro etafura iri nyore nemaune, kuitira kuti zvigone kushandiswa nyore nyore nescript kana zvichidikanwa. Zviratidzo zvakadhindwa, zvakarongwa nezita. Pamusana pekufananidzira kweumwe neumwe, mazita emafaira emafaira anopiwa. Kana iyo chiratidzo ichirondedzerwa, iyo faira yekutanga inzvimbo yenzvimbo tsanangudzo. Zvasara mafaira zvine zvinyorwa kune chiratidzo.

--no-define-zvakafanana

Iyi sarudzo inodzivisa kupiwa kweateri kune zviratidzo zvinowanikwa. Dhiyo script "INHIBIT_COMMON_ALLOCATION" ine mhinduro imwechete.

Iko -no-define-yakawanda sarudzo inobvumira kubvumira chisarudzo chekupa mazita kuIndaneti zviratidzo kubva pakusarudzwa kwehuwandu hwefaira fomu; kana zvisina kudaro asiri-Relocatable yakabudisa rudzi rwemasimba masimba anopa mazita kune Common Symbols. Kushandisa --no-define-common inobvumira Common zviratidzo zvinotaurwa kubva pane raibhurari yakagoverwa kuti igoverwe mazita chete muzvirongwa zvikuru. Izvi zvinoderedza kushandiswa kwechimwe chinhu chisina kushandiswa muraibhurari yakagoverwa, uye kunodzivirirawo chero kupi zvinganganisa kuvhiringidzika pamusoro pekugadzirisa kukanganisa kusina kunaka apo pane dzakawanda zvine simba ma modules nezvesa nzira dzekutsvaga yekugadzirisa shanduko yekufananidzira.

- firm symbol = kutaura

Gadzira chiratidzo chenyika yose mune yefaira file, ine dheta rakakwana rinopiwa nekutaura . Iwe unogona kushandisa sarudzo iyi kakawanda sezvakakodzera kuti ureve zviratidzo zvakawanda mumutsara wemirairo. Chimwe chimiro chema arithmetic chinotsigirwa nokuda kwemashoko munyaya iyi: unogona kupa nguva yehexadecimal kana zita rechiratidzo chakange chiripo, kana kushandisa "+" uye "-" kuwedzera kana kubvisa maitiro ehexadecimal kana zviratidzo. Kana iwe uchida mamwe mazwi akawandisa, funga kushandisa shanduro yemirayiridzo yekubatisa kubva pane script. Cherechedza: hapanofanira kuva nenzvimbo yakachena pakati pekufananidzira , chiratidzo chekuenzana (`` = ''), uye kutaura .

--demangle [= chimiro ]

- regai

Izvi zvingasarudzwa kana kuti kutora mazita ekufananidzira mumashoko ekukanganisa uye mamwe maitiro. Kana iyo linker inorayirwa kuti idimbure, inoedza kupa mazita emasikirwo nenzira inooneka: iyo inobatisa inotungamirira ichinyanya kushandiswa kana yakashandiswa nechinhu chinyoreswa mafaira, uye inoshandura C ++ mazita emasikirwo akanyorwa mumashandisi anoverengeka. Vanyori vakasiyana-siyana vane mararamiro akasiyana-siyana ema mangling. Izvo zvinoshandiswa kushandura mafungiro emagariro zvinogona kushandiswa kusarudza chimiro chakakosha chekutsvaga chekunyora yako. The linker icharamba ichigadziriswa kunze kwekunge nzvimbo yakasiyana-siyana COLLECT_NO_DEMANGLE yakasarudzwa. Izvi zvinoshandiswa zvinogona kushandiswa kudarika zvisizvo.

--dynamic-linker file

Isa zita rekugadzirisa kushandiswa. Izvi zvinongoreva chete kana zvichiita dynamically yakabatana ELF executables. Iko kusina simba dynamic linker inowanzo yakarurama; usashandisa izvi kunze kwekuti iwe uzive zvauri kuita.

- kubatanidzwa-kutamira

Iyi sarudzo inongobatsira chete pakabatanidza MIPS yakaiswa pikoro yePIC, yakagadzirwa ne-membedded-pic sarudzo kune GNU compiler uye assembler. Inokonzera kugadzirisa kugadzira tafura iyo inogona kushandiswa panguva yekumhanya kuti ishandure chero dhimwe ruzivo rwakanga rwakatangwa kusvika kuhutano hwema pointer. Ona ikhodi mu testuite / ld-empic kuti uwane mamwe mashoko.

- kubatana-kunyevera

Ita zvose nyevero sezvikanganiso .

--force-exe-suffix

Iva nechokwadi chekuti faira yefaira ine chikwata che .exe.

Kana akabudirira akavaka zvakakwana kushamwaridzana kwefaira file haina "." Kana kuti " .dll " chikwata, sarudzo iyi inomanikidzai linker kuti ikopike iyo yakabuda faira kune rimwe chete zita ne ".exe" suffix. Iyi sarudzo inobatsira paunoshandisa unmodified Unix mafaira pamusangano weMicrosoft Windows, sezvo dzimwe shanduro dzeWindows dzisingashandisi mufananidzo kunze kwekuti dzinopera mu ".exe" suffix.

--no-gc-zvikamu

--gc-sections

Ita kuti marara azounganidze zvikamu zvekushandisa zvisina kushandiswa. Izvo zvisina kufanirwa pane zvinangwa zvisingateereri sarudzo iyi. Ichi chisarudzo hachienderani ne -r , uye hachifaniri kushandiswa nechisimba chekubatanidza. Nzira isingaiti (yekusagadzira iri tsvina ) inogona kudzorerwa nekutsanangura -no-gc-zvikamu pamutsetse wemirairo.

--help

Shandisa chidimbu chemashoko-mutsara wemirairo pamutengo wakabuda uye kubva.

--target-rubatsiro

Shandisa chidimbu chezvinhu zvose zvinoshandiswa pane zvaunogona kuita pane zvakasara zvakabuda uye kubva.

-Map mapfile

Dhinda mapikicha ekubatanidza kune mapfile mapfile . Ona tsanangudzo ye-- Mption , pamusoro.

--no-keep-memory

ld kazhinji inogadziridza kukurumidza kushandiswa kwemusoro nekushandiswa ne caching zviratidzo zvemashoko emafaira ekupinza muchiyeuchidzo. Iyi sarudzo inotaurira ld panzvimbo pekugadzirisa kushandiswa kwepamusoro, nekudzokororazve mahwendefa ekufananidzira sezvinodiwa. Izvi zvinogona kudiwa kana ld ichibuda kunze kwechitarisiko nzvimbo apo ichibatanidza chikuru chinopikisa.

-no-isina kufanirwa

-z defs

Kazhinji pavakasika iyo isiri iyo yekufananidzira mabhaibheri, mabhii asina kufanirwa anobvumirwa uye anosara kuti agadziriswe nemutambo we runtime. Izvo zvingasarudzwa zvinoderedza izvo zvisingaenzaniswi zviratidzo.

--visa-multiple-definition

-z muldefs

Kazhinji apo chiratidzo chinotsanangurwa kazhinji, iyo linker ichapa mhosva yakaipa. Izvi zvingasvitsa tsanangudzo dzakawanda uye tsanangudzo yekutanga ichashandiswa.

--allow-shlib-isina kufanirwa

Rega zvisingazivikanwi zviratidzo muzvinhu zvakagoverwa kunyange kana - zvisingazivikanwi zvakasarudzwa. Mucherechedzo wekutsvaga uchave kuti izvo zvisingafananidzi zviratidzo muzvinhu zvinogara zvichiita zvicharamba zvichikonzera kukanganisa, asi zvisingafananidzi zviratidzo muzvinhu zvakagoverwa zvichange zvisina hanya. Kushandiswa kwekusa-kusina kufanirwa kunoita kuti kufungidzira kuti runtime linker ichanamatira pane zvisingaenzaniswi zviratidzo. Kunyange zvakadaro pane imwe nzira (BeOS) iyo isina kufanirwa zviratidzo mumabharara akagovana ndeyezvakanaka sezvo kernel inovabata panguva yakakosha kusarudza basa ripi rakakodzerwa nemapurani ezvino. IE kushandura kusarudza memset rakakodzera basa. Zviri pachena kuti zvakajairikawo kuti mapaibhurari eWPPA akagoverwa ave asina zviratidzo zvisingazivikanwi.

--no-undefined-version

Kazhinji kana chiratidzo chinenge chisina kujekeswa, the linker ichazvidza. Ichi chisarudzo hachibvumiri zviratidzo nechirongwa chisina kujekeswa uye mhosho inouraya ichabudiswa pane.

-no-kunyevera-mismatch

Kazhinji ld ichapa kukanganisa kana iwe uchiedza kubatanidza pamwe mafaira ekupinza asina kukodzera nokuda kwechimwe chikonzero, zvichida nokuti akave akabatanidzwa kune mapurogiramu akasiyana kana kuti akasiyana-siyana. Iyi sarudzo inotaurira ld kuti inofanira kurega zvinyararire zvikanganiso zvakadaro. Iyi sarudzo inofanira kungoshandiswa nekutarisirwa, mumamiriro ezvinhu kana iwe wakatora chimwe chinhu chinokosha chinoita kuti zvikanganiso zvekubatanidza hazvina kukodzera.

--no-yose-archive

Bvisa mhinduro ye-- whole-archive sarudzo yezvikamu zvekuchengetedzwa kweiyo archive.

--noinhibit-exec

Chengeta iyo inokonzerwa nehuwandu faira chero ipi zvichishandiswa. Kazhinji, the linker haigoni kubudisa purogiramu file kana inosangana nezvikanganiso panguva yekubatanidza; iyo inobva kunze isina kunyora iyo yakabudiswa file painobudisa chero kukanganisa chero.

-nostdlib

Chengetai mabhuku ekuraira mabhuku anotsanangurwa zvakajeka pamutsetse wemirairo. Makoreji erekori anotsanangurwa muchikwata chekubatanidza (kusanganisira script linker inotsanangurwa mumutsara wemirairo) haatauri.

--oformat output-format

ld inogona kugadzirirwa kutsigira zvinopfuura rimwe rudzi rwechinhu faira. Kana yako ld yakagadzirirwa nenzira iyi, unogona kushandisa -oformat sarudzo kuti utaure maitiro ekugadzirisa kwezvinhu zvakabuda pane faira. Kunyange kana ld yakagadzirirwa kutsigira zvimwe zvigadziro zvezvinhu, iwe hazviwanzodi kuti utaure izvi, sezvo ld inofanira kugadzirirwa kuti ibudise sechinhu chinenge chisina kushandiswa mafomu iyo inowanzoitwa maitiro pamashini imwe neimwe. purogiramu-format is a text string, zita romufananidzo wakatsigirwa nemataibhurari eBFD. (Unogona kutarisa mabhariyamu anowanikwa ne objdump -i .) Mutemo we "OUTPUT_FORMAT" unogonawo kutsanangura kubuda kwehuwandu, asi sarudzo iyi inopfuura kupfuura.

-qmagic

Iyi sarudzo isingabvumirwi nekuenderana kweLinux.

-Qy

Iyi sarudzo isingabvumirwi nekuenderana kweSVR4.

--relax

Chinhu chinoshandiswa nemagetsi anovhiringidza. Iyi sarudzo inotsigirwa chete pane zvishoma zvinangwa.

Pane dzimwe nzvimbo, sarudzo -relax inoshandisa kugadzirisa kwepasi pose kunogona kuitika apo anogadzirisa anogadzirisa kutarisa purogiramu, zvakadai sekuzorodza kero dzemodhi uye kugadzira mirayiridzo mitsva mune zvakabuda chinhu chefaira.

Pane dzimwe nzvimbo idzi idzi link time global optimizations zvingaita kuti zviratidzo zvekudzidzira zvigadziriswe zvisingaiti. Izvi zvinozivikanwa kuti ndizvo zvinoitika kuMatushita MN10200 uye MN10300 mhuri yevashanduri.

Pamapuranga apo izvi zvisingabatsirwi, --relax inogamuchirwa, asi isingatauri.

- kuwana-zviratidzo-file filename

Chengeta chete zviratidzo zvakanyorwa mufaira filename , kurasikirwa nevamwe vose. filename inongova faira yakadzika, ine zita rimwe chete rinomirira zita rimwe nerimwe. Iyi sarudzo inobatsira zvikuru mumamiriro ezvinhu (akafanana neVxWorks) uko pane guru guru rekufananidzira tafura rinowanikwa zvishoma nezvishoma, kuchengetedza nguva-nguva yekuyeuka.

- kuwana-zviratidzo-faira hairegi zviratidzo zvisingaenzaniswi, kana zviratidzo zvinoda kuendeswa.

Iwe unogona kungotsanangura chete - kuwana-zviratidzo-faira kamwe mumutsetse wemirairo. Inopfuura -s uye -S .

-rpath dir

Wedzera mutsara kunzira yekutsvaga mabhuku ekutsvaga. Izvi zvinoshandiswa painosangana neEEF inofananidzwa nezvinhu zvakagoverwa. Zvose -rpati nharo dzakagadziriswa uye dzinopfuudzwa kune runtimetime linker, iyo inoshandisa iyo kuti iwane zvinhu zvakagoverwa panguva yekumhanya. I-- rpath chisarudzo inoshandiswawo pakutsvaga zvinhu zvakagoverwa izvo zvinodiwa nezvinhu zvakagoverwa zvakajeka zvinosanganiswa muchibatanidza; ona tsanangudzo ye -rpath-link sarudzo. Kana -rpath isingashandiswi kana ichibatanidza neEEF inouraya, zviri mukati mezvakatipoteredza zvakasiyana "LD_RUN_PATH" zvichashandiswa kana zvichitsanangurwa.

Iyo -rpath chisarudzo inogona kushandiswawo paSunos. Nokusingaperi, pane SunOS, iyo linker ichagadzira runtime search patch kubva kune-- Izvipi zvingaitwa. Kana -rpath chisarudzo ichishandiswa, iyo runtime yekutsvaga nzira ichagadzirwa chete achishandisa -rpath zvisarudzo, kusazviteerera -I zvarudzo . Izvi zvinogona kubatsira kana uchishandisa gcc, iyo inowedzera vazhinji -I zvingasarudzwa zvingangodaro zviri paNFS yakasungirirwa mafaira.

Nokuenzanisa nevamwe ELF vanobatanidza, kana--sarudzo inoteverwa nezita rezita, panzvimbo yezita refaira, rinorapwa se -rpath chisarudzo.

-rpath-link DIR

Paunenge uchishandisa ELF kana SunOS, rimwe ragovera raibhurari rinogona kuda rimwe. Izvi zvinoitika kana chikwata che "ld-shared" chinosanganisira mabhuku akagoverwa seimwe yemafuta ekupinza.

Kana mubatanidzwa akaonana nehutano hwakadaro kana achiita zvisina kugoverana, kusina kuendesa kushandiswa, inongotanga kuedza kutsvaga bhaibheri raunenge ragoverwa uye rinosanganisira iri muchibatanidza, kana risina kubatanidzwa zvakajeka. Mumamiriro ezvinhu akadaro, the -rpath-link sarudzo inotsanangura sarudzo yekutanga yekutsvaga kutsvaga. I-- rpath-link sarudzo inogona kutsanangura kuenzanisa kwemazita ekunyora kana kuisa rondedzero yemazita akaparadzaniswa nemakoloni, kana nekuonekwa kakawanda.

Iyi sarudzo inofanira kushandiswa nekuchenjerera sezvo inodarika nzira yekutsvakira iyo ingangodaro yakaoma yakaumbwa muraibhurari yakagoverwa. Mumamiriro ezvinhu akadaro zvinokwanisika kushandisa pasina chinangwa nzira yakasiyana yekutsvaga kupfuura iyo runtimetime linker yaizoita.

The linker inoshandisa nzira dzinotevera dzekutsvaga kuti uwane mairaibhurari akagoverwa aidiwa.

1.

Chero zvinyorwa zvinotsanangurwa ne -rpath-link zvisarudzo.

2.

Chero zvinyorwa zvinotsanangurwa ne -rpath zvisarudzo. Kusiyana pakati pe -rpath uye -rpath-link ndiyo iyo mitemo inotsanangurwa ne -rpath sarudzo inosanganiswa mumashandi anoshanda uye anoshandiswa panguva yekumhanya, asi -rpath-link sarudzo inoshanda chete panguva yekubatanidza. Icho chiri chechizvarwa chekubatana chete.

3.

Pane ELF system, kana -rpath uye "rpath-link" zvisarudzo zvisati zvashandiswa, tsvaga zviri mukati mezvakasiyana-siyana "LD_RUN_PATH". Icho chiri chechizvarwa chekubatana chete.

4.

PaZuvaZuva, kana -rpath chisarudzo chisina kushandiswa, tsvaga chero zvinyorwa zvinotsanangurwa uchishandisa -L zvisarudzo.

5.

Nokuda kwechizvarwa chekubatanidza, zviri mukati mezvakatipoteredza zvakasiyana "LD_LIBRARY_PATH".

6.

Nekuzvarwa kweElF kuwirirana, zvinyorwa mu "DT_RUNPATH" kana kuti "DT_RPATH" yebhuku raive rakagovana rinotsvakirwa mairaibhurari akagoverwa anodiwa naro. Zvinyorwa zve "DT_RPATH" hazvina hanya kana kuiswa "DT_RUNPATH" kuchiripo.

7.

Izvo zvisiri izvo zvinyorwa, kazhinji / lib uye / usr / lib .

8.

Nekuzvarwa linker pane ELF system, kana faira /etc/ld.so.conf iripo, urongwa hwehuwandu hunowanikwa mune iyo faira.

Kana iyo raibhurari yaidiwa inowanikwa isingawanikwi, iyo linker ichabudisa nyevero uye inopfuurira nehukama.

-shared

-Basakara

Gadzira raibhurari yakagoverwa. Ikozvino yakatsigirwa chete pane ELF, XCOFF uye Sunos platforms. PaSunOS, iyo linker ichakurumidza kuumba mabhuku akagoverwa kana i-chisarudzo chisina kushandiswa uye pane zvisina kufanirwa zviratidzo muhutano.

-sort-common

Iyi sarudzo inotaurira ld kutarisa zviratidzo zvinowanzoenderana nehukuru kana zvichishandiswa pane zvikamu zvakabuda zvakabuda. Kutanga kuuya zvose zvakafanana nezvimwe zviratidzo, zvino zvose zviviri byte, ipapo zvose zvina mana, uyezve zvimwe zvose. Izvi ndechokudzivirira matanho pakati pezviratidzo zvichienderana nekugadzirisa zvinetso.

--split-by-file [ size ]

Saizvozvowo ne -split-by-reloc asi inoita chigadziro chechikamu chechikamu chefaira rega rega kana chiyero chasvika. kukura kwezvipfeko kusvika kuhukuru hwe 1 kana husati hwapiwa.

- svet-by-reloc [ count ]

Inoedza kuumba zvikamu zvepamusoro mufaira rekubudisa kuitira kuti hapana chikamu chimwe chete chinowanikwa mukati mefaira chinowedzera kupfuura kuverengera kuverengera . Izvi zvinobatsira kana uchinge uine mafaira makuru ekudzokorora mune imwe nguva chaiyo ma kernels ne COFF object file file; sezvo COFF isingatauri kupfuura 65535 kudzokera kune imwe chikamu. Cherechedza kuti izvi zvingakundikana kushanda nechokuita mafaira mafomu asingatsigiri zvikamu zvisingatauriki. The linker haizoparadzanisi zvikamu zvekupinza zvikamu zvekugoverwa, naizvozvo kana chikamu chimwe chekupindira chine zvakawanda kupfuura kuverenga kuchinjwa chimwe chezvikamu chikamu chichava nevakawanda vanoenda. nhamba yakasvibiswa kunokosha ye 32768.

- stats

Nyora uye kuenzanisa zvinyorwa pamusoro pekushandiswa kweiyo linker, yakadai sekuita nguva nekushandiswa kwepamusoro.

--traditional-format

Nezvimwe zvinangwa, zvinobudiswa zve ld zvakasiyana mune dzimwe nzira kubva pakubuda kwechimwe chekubatanidza. Iyi shanduro inokumbira ld kuti ishandise mafomu edzimba panzvimbo.

Somuenzaniso, pane SunOS, ld inosanganisira zvinyorwa zvinyorwa mumutsetse wechiratidzo. Izvi zvinogona kuderedza hukuru hwehuwandu hwefaira ine ruzivo rwakakwana rwekutsauka kwemashoko nepamusoro pe30%. Zvinosuruvarisa, chirongwa cheSunos "dbx" hachikwanisi kuverenga chirongwa chinoguma ("gdb" haina dambudziko). I -traditional-format switch inotaurira ld kuti isasanganise zvinyorwa zvinyorwa.

--section-start sectionname = org

Tsvaga chikamu chiri mukati pefaira file pane imwe nzvimbo yakakwana inopiwa nhengo . Iwe unogona kushandisa sarudzo iyi kakawanda sezvakakosha kuwana nzvimbo dzakawanda mumutsara wemirairo. org inofanira kunge isina imwe hexadecimal integer; nokuda kwekuenderana nemamwe masangano, unogona kusiya 0x inotungamirira inowanzobatanidzwa ne hexadecimal values. Cherechedza: hapanofanira kuva nechepakati nzvimbo pakati pezita rezita , chiratidzo chekuenzana (`` = ''), uye nhengo .

-Tbss kana

-Tdata org

-Text org

Shandisa yeg kana yero yekutangira ye --- zvakananga --- "bss", "data", kana kuti "text" chikamu chekubudisa faira. org inofanira kunge isina imwe hexadecimal integer; nokuda kwekuenderana nemamwe masangano, unogona kusiya 0x inotungamirira inowanzobatanidzwa ne hexadecimal values.

--dll-verbose

--verbose

Ratidzai nhamba yevhidhiyo ye ld uye nyorai linker emulations yakatsigirwa. Ratidzai mafaira ekushandisa anogona uye asingagoni kuvhurwa. Ratidza script linker iri kushandiswa ne linker.

--version-script = version-scriptfile

Rondedzera zita reshanduro script kune linker. Izvi zvinowanzoshandiswa pakusika mabhaibheri ekugoverana kuti ataure mamwe mazano pamusoro peiyo heirarchy yekuraibhurari iyo yakasikwa. Iyi sarudzo inongobatsira chete paElf mapurisa anotsigira mabhuku akabatanidzwa.

- ona-zvakajairika

Chenjerera kana chiratidzo chinowanzobatanidzwa nechimwe chimiro chinowanzoonekwa kana nechinotsanangurwa chekufananidzira. Unix inobvumidza kubvumira ichi chimiro chisina maturo, asi kubatanidza kune dzimwe nzira dzekushanda hazviiti. Izvi zvinokubvumira kuti uwane zvinetso zvingangobatanidza kuunganidza zviratidzo zvenyika yose. Zvinosuruvarisa, mamwe mabhuku eC anoshandisa tsika iyi, saka unogona kuwana dzimwe nyevero pamusoro pezviratidzo mumabhuku ekuraibhurari uye mumapurogiramu ako.

Kune marudzi matatu ezviratidzo zvepasi pose, zvinoratidzwa pano nemuenzaniso C:

int i = 1;

Tsanangudzo, iyo inopinda muchikamu che data chekutanga chekubudisa faira.

extern int i;

Chirevo chisina kufanirwa, chisingatauri nzvimbo. Panofanira kunge kune imwe tsanangudzo kana kuti chiratidzo chinowanzoonekwa chekusiyana pane imwe nzvimbo.

int i;

Chiratidzo chinowanikwa. Kana paine chete (imwe kana kupfuura) zviratidzo zvinowanzofanana zvechigadziriswa, inopinda mune uninitialized data nzvimbo ye output output. The linker inobatanidza zviratidzo zvakawanda zvakajairika zvechimiro chimwe chete kuva chiratidzo chimwechete. Kana ivo vakasiyana-siyana, inotakura kukura kukuru. The linker inoshandura chiratidzo chinowanzova chirevo, kana pane tsanangudzo yezvakasiyana zvakafanana.

Iko -yekuwana- yakasarudzika sarudzo inogona kubudisa marudzi mashanu emanyevero. Nyevero imwe neimwe inoumbwa nemitsara miviri: yekutanga inotsanangura chiratidzo chakangosangana, uye wechipiri inotsanangura chiratidzo chekare chakasangana nezita rimwe chete. Chimwechete kana zvose zviri zviviri zviratidzo zvichave chiratidzo chinowanzoonekwa.

1.

Kutendeza chiratidzo chinowanikwa muchirevo, nokuti pane kakato tsanangudzo yechiratidzo.

(
): kunyevera: kazhinji ye ` 'yakazara nedudziro (
): nyevero: tsanangudzo pano

2.

Kutendeza chiratidzo chinowanzova mukutaridzirwa, nokuti imwe tsanangudzo yekufananidzira inosangana. Izvi zvakafanana neyekare, kunze kwekuti zviratidzo zvinosangana nenzira yakasiyana.

(
): nyevero: tsanangudzo ye ` 'inowanzoenderana (
): nyevero: iripo iri pano

3.

Kubatanidza chiratidzo chinowanzoenderana nechimwe chekare chakafanana.

(
): nyevero: yakawanda yakawanda ye ` ' (
): nyevero: yapfuura yakafanana iri pano

4.

Kubatanidza chiratidzo chinowanzofanana nechimwe chekare chakakurumbira chiratidzo.

(
): nyevero: kazhinji ye ` 'yakazara nemamwe makuru (
): nyevero: huru yakawanda iri pano

5.

Kubatanidza chiratidzo chinowanzofanana nechidiki chekare chinowanzozivikanwa. Izvi zvakafanana neyekare, kunze kwekuti zviratidzo zvinosangana nenzira yakasiyana.

(
): kunyeverwa: kazhinji ye ` 'yakawanda kudarika (
): nyevero: zviduku zvakajairika zviri pano

- vadzidza-vavaki

Chenjerera kana kune vavaki vese vepasi vanoshandiswa. Izvi zvinongobatsira chete kune zvishomanana zvamafaira mafaira. Nezvikwata zvakaita COFF kana ELF, the linker haigoni kuona kushandiswa kwevakavaka pasi rese.

- ona-multiple-gp

Chenjerera kana pane dzakawanda pasi pointer tsika dzinodiwa mukati mefaira . Izvi zvinongoreva zvakananga kune vamwe vanyoro, vakadai saAlfa. Kunyanya, mamwe mapurogiramu anoisa mitsara yakakosha zvikuru mune chikamu chakakosha. Rimwe rekodhi chaiyo (inonzi global pointer) inotarisa pakati pechikamu chino, kuitira kuti mhedziso dzinogona kutakurwa zvakanaka kuburikidza ne-base-rejistory relative addressing mode. Sezvo kukanganiswa kwebhuku-rejeri yenhengo yakarongeka yakasimbiswa uye yakawanda (semuenzaniso, 16 bits), izvi zvinogumira kukura kwepamusoro kwedziva rinogara riripo. Nokudaro, mumapurogiramu makuru, inowanzodiwa kushandisa shanduko dzakawanda pasi pointer kuitira kuti ugokwanisa kugadzirisa zvese zvinogona kuitika. Izvi zvinokonzera nyevero kuti ibudiswe chero nyaya iyi ichiitika.

- ona-kamwe

Ingonyevera kamwe chete pane chimwe nechimwe chisina kujekeswa, pane kamwe chete pamutsetse unoreva.

- ona-chikamu-align

Chenjerera kana kero yezvakabudiswa chikamu chachinjwa nekuda kwekuenzaniswa. Kazhinji, kugadzirisa kuchagadziriswa nechikamu chekupindira. Kero ichangoshandurwa chete kana isina kunyatsotsanangurwa; ndiko kuti, kana "CHIKAMU" murairo haritauri kero yekutanga yechikamu.

--whole-archive

Pamusoro pezvinyorwa zvose zvataurwa pamusoro pomutsetse wekutevera mushure me-- whole-archive option, sanganisira chero faira yezvinyorwa muzvinyorwa zvekuchengetedzwa, panzvimbo yekutsvaga zvinyorwa zvezvinyorwa zvefaira. Izvi zvinowanzoshandiswa kushandura faira rekuchengetedza mumabhaibheri akagoverwa, kumanikidzira chimwe chinhu kuti chibatanidzwe muraibhurari yakagoverwa inowanikwa. Iyi sarudzo ingashandiswa kanopfuura kamwe chete.

Zvinyorwa zviviri paunoshandisa sarudzo iyi kubva gcc: Kutanga, gcc haazive nezvechisarudzo ichi, naizvozvo unofanira kushandisa -Wl, -hole-archive . Chechipiri, usakanganwa kushandisa -Wl, -no-full-archive mushure mekunge mazita ezvinyorwa, nokuti gcc ichawedzera mazita ezvinyorwa zvekuchengetedza kwako uye iwe ungasadi kuti mureza uyu uitewo kune avowo .

- chikwata chemufananidzo

Shandisa basa rinoputira chiratidzo . Chero chipi zvacho chisingatsananguri chinotaura nezvechiratidzo chichagadziriswa ku "__ wrap_symbol". Chero chipi zvacho chisingatauri nezve "__real_symbol" chichagadziriswa kuva chiratidzo .

Izvi zvinogona kushandiswa kupa ruvara rwehutambo. Basa rakaputika rinofanira kunzi "__wrap_symbol". Kana ichida kudana system system, inofanira kudana "__ real_symbol".

Heino muenzaniso muduku:

pasina * __wrap_malloc (int c) {printf ("malloc inonzi% ld \ n", c); dzoka __real_malloc (c); }

Kana iwe uchibatanidza imwe code pamwe nefaira iyi uchishandisa --wrap malloc , ipapo nhare dzose ku "malloc" dzichati basa "__wrap_malloc" pane. Kudanwa ku "__real_malloc" mu "__wrap_malloc" kuchadana chaiwo "malloc" basa.

Iwe unogona kuda kupa "__real_malloc" basa zvakare, kuitira kuti kushamwaridzana pasina- yekugadzirisa sarudzo kuchabudirira. Kana iwe ukaita izvi, haufaniri kuisa tsanangudzo ye "__ real_malloc" mune imwe faira se "__wrap_malloc"; kana iwe uchidaro, sangano rinogona kugadzirisa runhare musati mumiririri ane mukana wokuuputira kuti "malloc".

- zvinoita-itsva-dtags

-disable-new-dtags

Iyi linker inogona kugadzira matasha matsva ekutengesa muElf. Asi vakuru veEEF maitiro vangasanzwisise. Kana iwe uchitaura - zvinoita-zvitsva-dtags , mathizha akasimba achagadzirwa sezvinodiwa. Kana iwe uchitaura - zvisingaoneki-zvitsva-dtags , hapana matambi matsva anoshandiswa achagadzirwa. Nekusavapo, mitsva yakasimbiswa itsva haina kusikwa. Cherechedza kuti izvo zvingasarudzwa zvinongowanikwa kuEELF systems.

I386 PE linker inotsigira--sarudzo yekusarudza, iyo inokonzera kuti zvigadziriswe kuva mabhuku akabatanidza (library) (DLL) panzvimbo pekuita zvinowanzoitwa. Iwe unofanirwa kutumidza kuti "* .dll" kana ukashandisa izvi. Mukuwedzera, iyo linker inotsigira zvakakwana "* .def" mafaira, ayo angataurwa pane mutsetse wemirairo wekubatanidza sefaira (chinhu chaicho, chinofanirwa kutanga pamberi pezvinyorwa zvekuchengetedza zviratidzo kubva kune, kuve nechokwadi kuti zvinowananidzwa, kungofanana nechimwe chinhu chinhu faira).

Mukuwedzera kune zvingasarudzwa zvinowanikwa kune zvose zvinotarisirwa, i386 PE hubatanidza rubatsiro rwemimwe mirayiridzo mutsara mutsara iyo yakananga kune i386 PE chinangwa. Zvisarudzo zvinotora zvigaro zvinogona kuparadzaniswa kubva pane zvavanokoshesa pane imwe nzvimbo kana kuti chiratidzo chinoyanana.

--add-stdcall-alias

Kana yakapiwa, zviratidzo ne stdcall suffix (@ nn ) zvichaendeswa kune-uye uye pamwe nechocho chikwata chakabviswa.

--base-file file

Shandisa faira sezita refaira raunogona kuchengetedza mazita ezvinyorwa zvekufambisa kwose kunoda kuunza DLL ne dlltool .

--dll

Gadzira DLL pane kugara uchigadzirisa. Iwe unogonawo kushandisa- kufambisa kana kutsanangura "LIBRARY" mune imwe nzvimbo ".def".

- inokwanisa-stdcall-fixup

-disable-stdcall-fixup

Kana iyo link inowana chiratidzo chokuti haigoni kugadzirisa, ichaedza kuita `` kushamwaridzana kushamwaridzana '' nekutsvaga chimwe chirevo chinotsanangurwa chinopesana chete mumutauro wezita rechiratidzo (cdecl vs stdcall) uye chichagadzirisa icho chiratidzo kuburikidza kusvika kumutambo. Somuenzaniso, chinyorwa chisina kutaurwa "_foo" chingave chakabatanidzwa nebasa "_foo @ 12", kana kuti chiratidzo chisina kutaurwa "_bar @ 16" chingave chakabatanidzwa nebasa "_bar". Apo mubatanidzwa anoita izvi, inonyora nyevero, sezvo inowanzofanira kunge yakundikana kubatanidza, asi dzimwe nguva inotumira mabhizinesi akaberekwa kubva kune vamwe vatatu dlls angadikanwa kuti chinhu ichi chigone kushandiswa. Kana iwe uchitaura - inokwanisa-stdcall-fixup , ichi chinhu chakanyatsobvumirwa uye nyevero hadzina kudhindwa. Kana iwe uchitaura - kusinga-stdcall-fixup , ichi chinhu chakakonzerwa uye zvakadaro hazvina kuonekwa sekukanganisa.

--export-zvose-zviratidzo

Kana zvikapiwa, zviratidzo zvepasi rose muzvinhu zvinoshandiswa pakuvaka DLL zvichaendeswa kune DLL. Cherechedza kuti iyi ndiyo yakashata kana pane imwe nguva isingazove iri zviratidzo zvinotengeswa. Kana zviratidzo zvichinyatsobudiswa kubva kuDF files kana kuti zvakatengeswa zvakakwana kuburikidza nemabasa, zvinokanganisa ndezvekuti tisatengese chero chinhu kunze kwekunge sarudzo iyi ipiwa. Cherechedza kuti zviratidzo "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", uye "impure_ptr" hazvizoendese kutengeswa. Uyewo, zviratidzo zvinotengeswa kubva kune dzimwe DLL hazvingadzokwizve kutengeswa, uyewo zviratidzo zvinoratidza DLL mukati memo shanduko seyaya inotanga ne "_head_" kana kuguma ne "_iname". Mukuwedzera, hapana zviratidzo kubva "libgcc", "libstd ++", "libmingw32", kana kuti "crtX.o" ichaendeswa kunze. Symbols dzine mazita anotanga ne "__rtti_" kana "__builtin_" haazotengeswi, kuzobatsira neC ++ DLLs. Pakupedzisira, kune rondedzero yakawanda yeygwin-yega zviratidzo zvisingatengeswi (zviri pachena, izvi zvinoshandiswa painovaka DLLs yezvinangwa zve cygwin).

Aya majegwin-asiripo ndeokuti: "_cygwin_dll_entry @ 12", "_cygwin_crt0_common @ 8", "_gg_n_cycy_dll_entry @ 8", "_fmode", "_impure_ptr", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2", "cygwin_premain3 ", uye" nzvimbo ".

--exclude-zviratidzo chiratidzo , chiratidzo , ...

Inotsanangura urongwa hwezviratidzo zvisingafaniri kutumirwa kutengesa. Mazita ekufananidzira angangodaro akaiswa nemakasia kana makoloni.

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

Inotsanangura urongwa hwekuchengetedza mabhuku ekuchengetedzwa kwemashoko kubva pane zviratidzo zvisingatauri kutengeswa. Mazita eraibhurari angave akaiswa nemakasia kana makoloni. Kurondedzera "--exclude-libs ALL" inosanganisa zviratidzo mumabhuku e-archive ose kubva kuzvinotengesa kutengesa. Zviratidzo zvakanyatsorongeka mune a .def file zvichiri kutengeswa, pasinei nechisarudzo ichi.

--file-alignment

Tsanangura kuenzaniswa kwefaira. Zvikamu zviri mufaira zvicharamba zvichitanga pafaira zvipfeko izvo zvizhinji zve nhamba iyi. Izvi zvinokanganisa kusvika 512.

- chengetedza

- chengetedza , ita

Taurai muwandu hwekuyeuka kuchengetedza (uye zvisarudzo kuzvipira) kuti ishandiswe semurwi wepurogiramu iyi. Zvisizvo ndezvokuti 1Mb yakachengetwa, 4K yakazvipira.

-kuita-base- value

Shandisa kukosha seyero yepamusoro yepurogiramu yako kana dll. Iyi ndiyo nzvimbo yakadzika yepamusoro yekuyeuka iyo ichashandiswa apo purogiramu yako kana dll iri kutakurwa. Kuti kuderedze kudiwa kwekudzoka nekuvandudza kushanda kweiyo dlls, mumwe nomumwe anofanira kunge ane kero yakasiyana-siyana yepamusoro uye asingatauri chero imwe dlls. Izvo zvisiri zvacho ndeye 0x400000 yekushandisa, uye 0x10000000 ye dlls.

--kill-at

Kana ikapiwa, stdcall suffixes (@ nn ) ichabviswa pane zviratidzo vasati vatengeswa.

--major-image-version kukosha

Inoisa nhamba huru ye `` image version ''. Yakashata kusvika 1.

--major-os-version kukosha

Inoisa nhamba huru ye `` os version ''. Zvinokanganisa kusvika 4.

--major-subsystem-version kukosha

Inoisa nhamba huru ye `` subsystem version ''. Zvinokanganisa kusvika 4.

--minor-image-version kukosha

Inoisa nhamba duku ye `` image version ''. Inokanganisa ku 0.

--minin-os-version kukosha

Inoisa nhamba duku ye `` os version ''. Inokanganisa ku 0.

--minor-subsystem-version kukosha

Inoisa nhamba duku ye `` subsystem version ''. Inokanganisa ku 0.

--output-def file

The linker ichaumba faira file iyo ichava neDF faira yakaenzana neDLL iyo linker inoita. Iyi DEF file (iyo inofanira kunzi "* .def") inogona kushandiswa kugadzira raibhurari yekunyorera ne "dlltool" kana inogona kushandiswa sekutaridzirwa kwekutsvaga kana zviratidzo zvekunze zviri kunze.

-out-implib file

The linker ichaumba faira faira iyo ichava ine import lib inoenderana neDLL iyo linker inoita. Izvi zvinonzi lib (iyo inofanira kunzi "* .dll.a" kana kuti "* .a" inogona kushandiswa kushamwaridzana nevatengi kune DLL yakaitwa; izvi zvinoita kuti zvikwanise kudarika rimwe danho re "dlltool" rekuumba makirasi ekutumira.

- inogona-auto-image-base

Sarudza chinyorwa chemufananidzo weDLLs, kunze kwekuti mumwe ataurwe achishandisa "-image-base" argument. Nokushandisa hash yakagadzirwa kubva ku dllname kugadzira zvigadzirwa zvepamusoro zvezvigadziro zveDLL imwe neimwe, mu--kuyeuka kukanganisa nekudzoka kunogona kunonoka chirongwa chekuita chinodziviswa.

-disable-auto-image-base

Usazvigadzirisa zvigadzirwa zvemufananidzo wakasiyana. Kana pasina muteveri-tsanangudzo yezvigadzirwa zvemufananidzo ("-image-base") ipapo shandisa nzvimbo yacho isina kukwana.

--dll-search-prefix string

Paunobatanidza dynamically kune dll pasina bhaibheri rekushandisa, tsvaga " .dll" muchida "lib .dll". Iyi miitiro inobvumira kusiyana kwakadzika pakati peDLL yakagadzirirwa zvakasiyana-siyana `` subplatforms '': chizvarwa, cygwin, uwin, pw, nezvimwe. Somuenzaniso, cygwin DLLs inowanzoshandisa "- dll-search-prefix = cyg".

- inokwanisika-auto-import

Iwe unyanzvi hwekubatanidza "_symbol" ku "__imp__symbol" yeDATA inotengeswa kubva kuDLL, uye kugadzira zviratidzo zvinoshandiswa zvekudzidzira paunenge uchivaka makiraibhurari ekutakura neavo DATAIzvinyorwa. Izvi zvinowanzo "kungoshanda"-asi dzimwe nguva unogona kuona iyi mharidzo:

"variable" 'haikwanisi kuitiswa nemotokari. Ndapota verengai zvinyorwa zve ld "-enable-auto-import" kuti uwane mamwe mashoko. "

Uyu mharidzo inoitika apo mamwe (sub) kutaura anowanika kero pakupedzisira anopiwa nehuwandu hwemagetsi maviri (Win32 kutengesa matafura anongobvumira imwe). Mienzaniso iyo izvi zvinogona kuitika inosanganisira kuwanikwa kune dzimwe nhengo dzemasangano ekugadzirisa zvinoshandiswa kubva kune DLL, uyewo kushandisa shanduro yenguva dzose mumhando yakasiyana inotengeswa kubva kuDLL. Chero chipi nechipi chinonzi multiword (marrays, struct, long long, etc) chinogona kukonzera kukanganisa uku. Zvisinei, pasinei nemhando chaiyo yemhando yezvakaipa zvinokanganisa kutengeswa, ld nguva dzose ichazviona, inopa nyevero, uye ibuda.

Pane nzira dzakawanda dzekugadzirisa dambudziko iri, pasinei nedudzi rwekutsvaga kwekutsinhanisa kutengeswa:

Imwe nzira ndeyokushandisa -enable-runtime-pseudo-reloc switch. Izvi zvinosiya basa rekugadzirisa zvinyorwa mukodhi yako yeklayiti yekugadzirisa nguva yekuchengetedza, naizvozvo nzira iyi inoshanda chete kana nguva yekupedza nguva yakakwana inotsigira chinhu ichi.

Chipiri chekugadzirisa ndechekumanikidza chimwe che "constants" kuti chive shanduko-iyo, isingazivikanwi uye isingakwanisi kugadzirisa nguva. Pamusoro pezvikwata, pane zvingangodaro: a) ita iyo indexee (adresi yekodhi) yakasiyana, kana b) iite 'chinyorwa' chinotsanangura. Nokudaro:

extern type extern_array []; extern_array [1] -> {chinotyisa * t = extern_array; t [1]

kana

extern type extern_array []; extern_array [1] -> {chivande int t = 1; extern_array [t]

Nokuda kwekugadzirisa (uye mamwe akawanda emhando dzemhando dzemhando) yega sarudzo ndeyokuita kuti zvive zvakarongeka (kana kuti yakareba kwenguva refu, kana ...) yakasiyana:

extern struct s extern_struct; extern_struct.field -> {isinganzwisisi struct s * t = & extern_struct; t-> munda}

kana

extern kwenguva refu extern_ll; extern_ll -> {inogara kwenguva yakareba refu * local_ll = & extern_ll; * local_ll}

Nzira yechitatu yekugadzirisa dambudziko iri ndeyekusiya 'auto-import' kwechiratidzo chinokanganisa uye kuchicherechedza ne "__declspec (dllimport)". Zvisinei, mukuita izvo zvinoda kushandisa nguva yekuunganidza -defines kuti uratidze kana uri kuvaka DLL, chivako chekodhi yeklayiti iyo ichabatanidza kuDLL, kana kungovaka / kubatanidza kune rimwe mabhuku. Pakuita sarudzo pakati pemarudzi akasiyana-siyana ekugadzirisa 'kero yakananga nekunongopedzisira' dambudziko, unofanira kufungidzira kushandiswa kwenyika-kushandiswa:

Pakutanga:

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

Solution 1:

--foo.h extern int arr []; --foo.c #include "foo.h" void main (int argc, char ** argv) {/ * Izvi zvinowanzoitirwa win32 uye cygwin; musa "fungisisa" * / chivande mukati * parr = arr; printf ("% d \ n", parr [1]); }

Solution 2:

- define (FOO_BUILD_DLL) || tsanangudzo (FOO_STATIC) - * Cherechedza: auto-export inotorwa (kwete __declspec (dllexport)) * / #if (tsanangudzo (_WIN32) || yakatsanangurwa (__ CYGWIN__)) && \! )) #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]); }

Nzira yechina yekudzivisa dambudziko iri nderekunyora zvakare mabhuku enyu kushandisa maitiro ekushanda panzvimbo pekushandura deta yezvimwe zvinokanganisa (semuenzaniso set_foo () uye get_foo () accessor mabasa).

-disable-auto-import

Usaedza kuita sophisticalted kuwirirana kwe "_symbol" ku "__imp__symbol" yeDATAimports kubva kuDLLs.

- inokwanisa-runtime-pseudo-reloc

Kana kodeji yako ine zvitsanangudzo zvinotsanangurwa mu - -enable-auto-import chikamu chikamu, kureva, DATAimports kubva kuDLL uye isiri zero offset, iyi shanduko ichaumba vector ye 'runtime pseudo relocations' iyo inogona kushandiswa nenguva yekugadzirisa nzvimbo kuti ichinje zvinyorwa kune data dzakadaro mumutsetse wekodha yako.

- kushamisika-runtime-pseudo-reloc

Usatungamira pseudo relocations kune kwete-zero kubvisa DATA zvinyorwa kubva kuDLL. Ichi ndicho chakashata.

-one-extra-pe-debug

Ratidza zvimwe zvinyorwa zvekugadzirisa zvakabatanidzwa maererano ne-import-import symbol thunking.

-section-alignment

Anogadzirisa chikamu chekuenzanisa. Zvikamu zvekuyeuka zvicharamba zvichitanga paateri iyo yakawanda yeiyo nhamba. Inokanganisa ku 0x1000.

- stack reserve

- stack reserve , ita

Rondedzera kukosha kwemusoro kuti uchengetedze (uye zvisarudzo uzviite) kuti ushandiswe sechikwata chepurogiramu iyi. Izvo zvisiri izvo 2Mb yakachengetwa, 4K yakazvipira.

--subsystem iyo

--subsystem iyo : chikuru

--subsystem iyo : chikuru . zvishoma

Inotsanangura ssystem iyo purogiramu yako ichaita. Nzira dzepamutemo dzokuti "chizvarwa", "madirisha", "console", uye "posix". Iwe unogona kusarudza kuisa subsystem version zvakare.

Zvinonyanya kukosha: Shandisa mutemo wevanhu ( % munhu ) kuti uone kuti murairo unoshandiswa sei pane imwe kombiyuta.