Linux / Unix Umurnin: Id

Sunan

ld - Amfani da LD , mai haɗawa na GNU

SYNOPSIS

ld [ zaɓuɓɓuka ] objfile ...

Sakamakon

ld ya haɗa nau'in abu da fayilolin ajiya, sake cire bayanan su da kuma danganta alamun alamomin. Yawancin lokaci mataki na karshe a cikin tattara wani shirin shine don gudanar da ld .

ld ya yarda da fayilolin Linker Command na fayilolin da aka rubuta a cikin mafi kyawun magungunan AT & T na Link Editor Command, don samar da cikakken bayani a kan tsarin haɗin.

Wannan shafin na mutumin ba ya bayyana harshe na umurnin; duba shigarwa a cikin "info", ko kuma littafin ld: GNU linker, don cikakkun cikakkun bayanai game da harshen umurnin da a kan wasu al'amurran da ke cikin mahaɗin na GNU.

Wannan sigar ld yana amfani da ɗakin ɗakunan BFD na musamman don aiki akan fayilolin abubuwa. Wannan yana bawa damar karantawa, hadawa, da kuma rubuta fayilolin abubuwa a cikin nau'i daban-daban daban-misali, COFF ko "a.out". Za a iya danganta siffofin daban-daban don samar da kowane nau'in fayil ɗin kayan aiki.

Baya ga sassaucinta, mai amfani da GNU ya fi taimakawa fiye da sauran masu haɗin kai don samar da bayanan bincike. Yawancin masu haɗin gwiwar sun watsar da kisan nan da nan bayan sun fuskanci kuskure; Duk lokacin da zai yiwu, ld ya ci gaba da aiwatarwa, yana ƙyale ka ka gano wasu kurakurai (ko, a wasu lokuta, don samun fayil din fitarwa duk da kuskure).

GNU linker ld yana nufin ya rufe babban yanayi na yanayi, kuma ya kasance kamar yadda ya dace tare da sauran masu haɗi. A sakamakon haka, kana da zabi da yawa don sarrafa halinsa.

KARANTA

Mai haɗin yanar gizo yana goyan bayan layi na jerin layi , amma a cikin ainihin aikin da aka yi amfani dashi a cikin kowane mahallin. Alal misali, yin amfani dd na yau da kullum don haɗawa da fayiloli na abubuwan Unix na al'ada a tsarin tsarin Unix, wanda ke tallafawa. A irin wannan tsarin, don danganta fayil ɗin "hello.o":

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

Wannan ya gaya wa ld don samar da fayil da ake kira fitarwa a sakamakon sakamakon haɗin fayil "/lib/crt0.o" tare da "hello.o" da kuma ɗakin karatu "libc.a", wanda zai fito ne daga jerin kundin bincike na ainihi. (Dubi tattaunawa game da -l zaɓi a ƙasa.)

Wasu daga cikin zaɓuɓɓukan umarni zuwa ld za'a iya ƙayyade a kowane maƙalli a layin umarni. Duk da haka, zaɓuɓɓukan da suka shafi fayilolin, kamar -l ko -T , suna sa fayil ɗin ya karanta a maƙallin da zabin ya bayyana a layin umarni, dangane da fayilolin abubuwan da wasu zaɓin fayil. Maimaita saitunan fayiloli ba tare da shawara dabam dabam ba zai sami wani ƙarin sakamako ba, ko ƙetare abubuwan da suka faru a baya (waɗanda suka haɓaka zuwa hagu a kan layi) na wannan zaɓi. Zaɓuɓɓuka waɗanda za a iya ƙayyade ma'ana fiye da sau ɗaya an lura a cikin kwatancin da ke ƙasa.

Ƙwararraba marasa zaɓi shine fayilolin kayan aiki ko ɗakunan ajiya wanda za'a haɗa su tare. Za su iya bin, suyi, ko kuma su haɗa su tare da zaɓuɓɓuka na layi, sai dai ba za'a sanya wata hujja ta fayil ba tsakanin wani zaɓi da jayayya.

Yawancin lokaci ana haɗin mahaɗin da akalla fayil ɗin abu daya, amma zaka iya saka wasu nau'i na fayilolin shigar binary ta amfani da -l , -R , da harshen rubutun rubutun. Idan babu fayilolin shigarwa binary an ƙayyade, mai haɗin yanar gizo bai samar da wani kayan aiki ba, kuma ya shafi saƙon Babu fayilolin shigarwa .

Idan mahaɗi ba zai iya gane tsarin fayil ɗin abu ba, zai ɗauka cewa wannan rubutun linker. Rubutun da aka ƙayyade a wannan hanya yana ƙaddamar da maɓallin linker da aka yi amfani dashi don mahaɗin (ko dai rubutun linker da aka ƙayyade ta amfani da -T ). Wannan fasali ya ba da damar mahaɗi don haɗi tare da fayil wanda ya kasance abu ne ko wani tarihin, amma kawai ya bayyana wasu alamun alama, ko yana amfani da "INPUT" ko "GROUP" don ɗaukar wasu abubuwa. Ka lura cewa ƙayyade rubutun ta wannan hanyar kawai yana ƙaddamar da rubutun maƙallan mahimmanci; yi amfani da - zaɓi don maye gurbin rubutun linker gaba daya.

Don zaɓuɓɓuka waɗanda sunayensu guda ɗaya ne, zabin muhawara dole ne bi biyan harafin ba tare da yin kuskuren launin fata ba, ko kuma a ba su a matsayin rabuwa dabam-dabam nan da nan bin zabin da yake buƙatar su.

Don zaɓuɓɓuka waɗanda sunayensu suna da haruffan haruffa, ko dai ɗayan ɗaya ko biyu na iya ƙaddamar sunan zaɓi; Alal misali, -wigin-alama da alama --trace-alama ce daidai. Lura - akwai banda daya akan wannan doka. Zaɓuɓɓukan wasika da yawa da suka fara da ƙananan ƙananan 'o' ba za a iya wuce su ta hanyar dashes biyu kawai ba. Wannan shine don rage rikicewa tare da -o wani zaɓi. Saboda haka misali- mummunan ya sa sunan fayil din fitarwa zuwa sihiri yayin da - mummunan ya kafa alamar NMAGIC akan fitarwa.

Dole ne a rabu da muhawarar zaɓuɓɓukan wasika da dama ta hanyar alamar zaɓaɓɓu ta hanyar alamar daidai, ko za a ba su a matsayin raba gardama nan da nan bin bin zaɓin da yake buƙatar su. Alal misali, -trace-symbol symbol da --trace-alama = foo su ne daidai. Za a yarda da raguwa na musamman na sunayen zaɓuɓɓukan wasiƙa.

Lura - idan ana kiran mai haɗin kai kai tsaye, ta hanyar mai ba da kwakwalwa (misali gcc ) to sai duk zaɓuɓɓukan layi na mahaɗin masu haɗin linzamin ya kamata su kasance da su -Wl, (ko duk abin da ya dace ga direba mai tarawa) kamar wannan:

gcc -Wl, - startgroup foo.o bar.o -Wl, - ƙungiya ta ƙarshe

Wannan yana da mahimmanci, domin in ba haka ba shirin mai ba da rahoto zai iya sauke saitin mahaɗin masu juyayi, ya haifar da mummunan haɗi.

A nan shi ne tebur na juyawa masu sauya umarni da karɓa na GNU ya karɓa:

-a keyword

Wannan zaɓi yana goyan bayan haɗin HP / UX. Dole ne maƙasudin mahimmancin kalmomi su kasance ɗaya daga cikin maƙalar ajiya , shared , ko tsoho . -aarchive yana aiki kamar -Bstatic , da sauran kalmomi guda biyu suna aiki daidai -Bdynamic . Za'a iya amfani da wannan zaɓin kowane lokaci.

- Gine

--architecture = gine-gine

A cikin saki na yanzu na Ld , wannan zabin yana da amfani ne kawai ga iyalin Intel 960 na tsarin gine-gine. A cikin wannan jigidar , labarun gine-gine yana nuna girman gine-gine a cikin iyalin 960, yana ba da wasu kariya da gyaggyara hanyar bincike na ɗakin karatu.

Samun LD na gaba zai iya tallafawa irin wannan aikin don sauran gine-gine.

-b shigar-format

--format = tsarin shigarwa

Ld za a iya saita shi don tallafawa fiye da ɗaya nau'in fayil ɗin abu. Idan an saita ld ɗinka wannan hanya, zaka iya amfani da zaɓi -b don siffanta tsarin binary don fayilolin abubuwan shigar da suka bi wannan zaɓi a kan layin umarni. Koda lokacin da aka tsara ld don tallafawa tsarin tsari daban, bazai buƙaci a saka wannan ba, kamar yadda Ld ya kamata a saita shi don sa ran azaman shigarwar shigarwa mafi yawan al'ada a kowane na'ura. Tsarin shigarwa shine rubutu na rubutu, sunan wani tsari wanda ke tallafawa ɗakin karatu na BFD. (Zaka iya lissafa samfurin binary da aka samo tare da objdump -i .)

Kuna iya amfani da wannan zabin idan kuna danganta fayiloli tare da tsarin binary bambance-bane. Hakanan zaka iya amfani da -b don sauya fayiloli a bayyane (lokacin da haɗin fayilolin abubuwa sun haɗa da fayilolin daban-daban), ta hanyar hada -da rubutun shigarwa kafin kowane rukuni na fayilolin abubuwa a cikin wani tsari.

An cire tsarin da aka dace daga yanayin "GNUTARGET" yanayi.

Hakanan zaka iya ƙayyade tsarin shigarwa daga rubutun, ta amfani da umurnin "TARGET";

-c MRI-commandfile

--mri-script = MRI-commandfile

Don dacewa tare da masu haɗin ginin da MRI ta samar, ld yarda da fayilolin fayilolin da aka rubuta a cikin wani maɓalli, harshe mai ƙuntatawa, wanda aka bayyana a cikin ɓangaren Fayil na Fassara na MRI na takardun GNU ld. Gabatar da fayiloli na MRI tare da zaɓi -c ; Yi amfani da -Dabin don gudanar da rubutun linker da aka rubuta a cikin harshe na musamman na ld scripting. Idan MRI-cmdfile bai wanzu ba, LD ya dubi shi a cikin kundayen adireshi da aka ƙayyade ta kowane zaɓi -L .

-d

-dc

-dp

Wadannan abubuwa uku suna daidai; Ana tallafa siffofin da yawa don dacewa tare da sauran masu haɗi. Sun sanya sararin samaniya ga alamomin kowa ko da idan an ƙayyade fayil ɗin fitarwa wanda aka ƙayyade (tare da -r ). Dokar rubutun "FORCE_COMMON_ALLOCATION" tana da tasiri ɗaya.

-e shigarwa

--entry = shigarwa

Yi amfani da shigarwa azaman alamar bayyane don fara aiwatar da shirinku, maimakon matsayin shigarwa. Idan babu alamar da aka shigar da shi , mai haɗawa zai yi ƙoƙarin shiga shigarwa a matsayin lambar, kuma amfani da shi azaman adireshin shigarwa (za a fassara lambar a cikin tushe na 10; zaka iya amfani da jagorancin 0x na tushe 16, ko kuma jagorancin 0 domin tushe 8).

-E

- Dynamic

Lokacin ƙirƙirar haɗin gwargwadon ƙarfin hali, ƙara dukkan alamomin zuwa layin alamar tsauri. Tabbin alamar duniyar alama ce ta alamun alamomin da ke bayyane daga abubuwa masu tsauri a lokacin gudu.

Idan ba ku yi amfani da wannan ba, zauren alamar duniyar za ta ƙunshi kawai waɗannan alamomin da wasu abubuwan da aka ambata a cikin haɗin suka rubuta su.

Idan ka yi amfani da "dlopen" don ɗaukar wani abu mai ƙarfi wanda ya buƙatar komawa zuwa alamomin da aka tsara ta hanyar shirin, maimakon wasu abubuwan da ke damewa, to tabbas za ka buƙaci amfani da wannan zaɓin yayin haɗi da shirin kanta.

Hakanan zaka iya amfani da rubutun rubutun don sarrafa abin da alamomin ya kamata a kara zuwa alamar alamar taƙama idan tsarin fitarwa yana goyan bayan shi. Dubi rubutun - ridge-rubutun a @ ref {VERSION}.

-EB

Sanya abubuwa masu girma. Wannan yana rinjayar tsarin fitarwa.

-Lel

Sanya abubuwa masu ƙanƙanci. Wannan yana rinjayar tsarin fitarwa.

-f

- nameiliary

Lokacin ƙirƙirar abu na ELF, saita filin na DT_AUXILIARY na ciki zuwa sunan da aka ƙayyade. Wannan ya nuna wa mahaɗar mai haɓaka cewa layin alamar abin da aka raba shi ya kamata a yi amfani da ita a matsayin maɓallin talla a kan launi na alama na sunan abu mai raba.

Idan ka daga baya danganta wani shirin akan wannan abu mai mahimmanci, to, a lokacin da kake gudanar da shirin, mai haɗakarwa zai iya ganin filin DT_AUXILIARY. Idan mai haɓaka mai haɓaka ya warware duk alamomi daga abin da aka ƙi, zai fara bincika ko akwai fassarar a cikin sunan abu mai raba. Idan akwai daya, za'a yi amfani dashi maimakon ma'anar a cikin abun tace tace. Sunan abu mai mahimmanci bazai wanzu ba. Ta haka ne sunan mai amfani da aka haɗa zai iya amfani dasu don samar da wani aikin gyaran wasu ayyuka, watakila don lalacewa ko don aiki na musamman.

Za'a iya ƙayyade wannan zaɓi fiye da sau ɗaya. Ana shigar da shigarwar DT_AUXILIARY a cikin tsari wanda suke bayyana akan layin umarni.

-F sunan

- sunan mai suna

Lokacin ƙirƙirar wani abu na ELF, saita filin na DT_FILTER na ciki zuwa sunan da aka ƙayyade. Wannan ya gaya wa mahaɗin mai dadi cewa layin alamar abin da aka raba wanda aka kirkiro ya kamata a yi amfani dashi a matsayin tace a kan teburin alama na sunan abu mai raba.

Idan ka daga baya danganta wani shirin akan wannan abu tacewa, to, idan ka gudanar da shirin, mai haɓakawa mai karfi zai ga filin DT_FILTER. Mai haɗakarwa mai ƙarfi zai warware alamomi bisa ga alamar alamar abin da aka tace kamar yadda ya saba, amma zai danganta da ainihin ma'anar da aka samo a cikin sunan abu mai suna . Ta haka ne za a iya amfani da taceccen zaɓi don zaɓar wani ɓangare na alamomin da sunan abu ya bayar.

Wasu tsofaffi masu amfani sunyi amfani da -F a cikin duk kayan aiki na kayan aiki don ƙayyade tsari na fayil don abubuwan shigarwa da kayan sarrafa kayan aiki. Mai amfani da GNU yana amfani da wasu hanyoyin don wannan dalili: da -b , --format , --oformat zažužžukan, da "TARGET" umurnin a cikin rubutun linker, da kuma "GNUTARGET" yanayi canzawa. Mai haɗin GNU zai watsi da zaɓi -F lokacin da ba a ƙirƙirar wani abu na ELF ba.

-fini sunan

Lokacin ƙirƙirar wani abu mai suna ELF ko abin da aka raba, kira NAME lokacin da aka sauke kayan aiki ko abin da aka raba, ta hanyar kafa DT_FINI zuwa adireshin aikin. Ta hanyar tsoho, mai amfani yana amfani da "_fini" a matsayin aikin kira.

-g

An manta. An bayar don dacewa tare da wasu kayan aikin.

-G darajar

--gpsize = darajar

Saita iyakar girman abubuwan da za'a gyara ta amfani da GP rajista zuwa girman . Wannan kawai mahimmanci ne don nau'in tsarin fayilolin kamar MIPS ECOFF wanda ke goyon bayan sa manyan abubuwa da kananan abubuwa zuwa sassa daban-daban. An manta da wannan don wasu siffofin fayil ɗin.

-h suna

-ameame = sunan

Lokacin ƙirƙirar abu na ELF, saita filin DT_SONAME na ciki zuwa sunan da aka ƙayyade. Lokacin da aka haɗu da wanda aka yi amfani da shi tare da abin da aka raba wanda yana da tashar DT_SONAME, to, a lokacin da mai aiwatarwa ke gudana mahaɗin mai haɓakawa zai yi ƙoƙarin ƙaddamar da abin da aka raba ta hanyar DT_SONAME filin maimakon yin amfani da sunan fayil da ake bawa ga mahaɗin.

-i

Yi haɗin haɓaka (daidai da zaɓi -r ).

-init sunan

Lokacin ƙirƙirar abin da aka gudanar na ELF ko abin da aka raba, kira NAME lokacin da aka ɗora kayan aiki ko abin shared, ta hanyar kafa DT_INIT zuwa adireshin aikin. Ta hanyar tsoho, mai amfani yana amfani da "_init" a matsayin aikin kira.

-l ajiya

--library = tarihin

Ƙara fayil din archive fayil zuwa jerin fayiloli don haɗi. Za'a iya amfani da wannan zaɓin kowane lokaci. Ld zai bincika jerin abubuwan da zasu faru na "libarchive.a" don kowane ɗakin ajiyar da aka kayyade.

A kan tsarin da ke tallafawa ɗakunan karatu, Ld iya bincika ɗakunan karatu tare da kari fiye da ".a". Musamman, a kan tsarin ELF da SunOS, Ld za ta nemo shugabanci don ɗakin karatu tare da tsawo na ".so" kafin neman daya tare da tsawo na ".a". Ta hanyar yarjejeniya, wani tsawo na ".so" yana nuna alamar ɗakin karatu.

Mai mahada zai bincika ajiyar sau ɗaya sau ɗaya, a wurin da aka ƙayyade a kan layin umarni. Idan tarihin yana nuna alamar da ba a bayyana a cikin wani abu wanda ya bayyana a gaban tarihin kan layin umarni, mai haɗawa zai hada fayiloli mai dacewa daga ajiyar. Duk da haka, alamar da ba a bayyana ba a wani abu da yake bayyana a baya akan layin umarni bazai sa mai haɗi don bincika tarihin ba.

Dubi - ( wani zaɓi don hanyar da za ta tilasta mahadar don bincika bayanan ajiya sau da yawa.

Kuna iya lissafa lokutan sau ɗaya ajiya akan layin umarni.

Irin wannan bincike na tarihin ya dace da mahaɗin masu amfani da Unix. Duk da haka, idan kana amfani da ld ONAIX, lura cewa yana da bambanta da halayyar mai haɗa AIX.

-L searchdir

--library-hanyar = searchdir

Ƙara hanyar bincike zuwa jerin hanyoyin da Ld za su nemo ɗakunan ɗakunan ajiya da kuma rubutun kulawa na Ld. Kuna iya amfani da wannan zaɓin kowane lokaci. Ana bincika kundayen adireshi a cikin tsari wanda aka ƙayyade a kan layin umarni. An bincika katunan da aka kayyade akan layin umarni kafin adireshin da aka rigaya. Dukkanin -L za su shafi dukan -suka , banda umarnin da zaɓuɓɓuka suka bayyana.

Idan binciken ya fara tare da "=", to, "=" za a maye gurbinsu ta hanyar rubutun sysroot , hanyar da aka ƙayyade lokacin da aka saita mahaɗin.

Hanyar saitunan da aka samo (ba tare da an ƙayyade shi ba tare da -L ) ya dogara da abin da yanayin da ake amfani da shi na amfani da shi, kuma a wasu lokuta kuma a kan yadda aka saita shi.

Hakanan za'a iya ƙayyade hanyoyi a rubutun link tare da umurnin "SEARCH_DIR". Kasuwancen da aka kayyade wannan hanya ana bincika a inda aka nuna rubutun linker a cikin layin umarni.

-m rufewa

Yi amfani da mahaɗin mahadar. Zaka iya lissafin samfuran da aka samo tare da zažužžukan --verbose ko -V .

Idan ba a yi amfani da zaɓi -m ba, ana daukar hotunan daga "yanayin LDEMULATION", idan an bayyana wannan.

In ba haka ba, maɓallin tsoho ya dogara ne akan yadda aka haɓaka mahaɗi.

-M

--print-map

Shigar da taswirar taswirar zuwa fitarwa. Taswirar taswira yana ba da bayani game da hanyar haɗi, ciki har da waɗannan masu zuwa:

*

A ina aka tsara fayiloli da alamomi cikin ƙwaƙwalwar ajiya.

*

Ta yaya aka ba da alamomi na kowa.

*

Duk mambobin ɗakunan da aka haɗa a cikin hanyar haɗi, tare da ambaci alamar da ya sa aka kawo membobin.

-n

--nmagic

Kashe shafin shafi na sashe, sa'annan ka nuna kayan aiki kamar "NMAGIC" idan an yiwu.

-N

- m

Saita rubutun da sassan bayanan bayanai don zama abin iya karantawa da kuma karɓa. Har ila yau, kada ku shafi shafi-daidaita bangaren kashi na bayanai, kuma ku daina haɗawa tsakanin ɗakunan karatu. Idan tsarin fitarwa ya kunshi nau'in sihiri na Unix, zana kayan aiki kamar "OMAGIC".

- maras kyau

Wannan zaɓin yana ƙin yawancin sakamakon da -N ɗin . Ya sanya sashin rubutun don karantawa kawai, kuma yana tilasta sashin bayanai don zama mai haɗin shafi. Lura - wannan zaɓi bai taimaka wajen haɗuwa da ɗakunan karatu ba. Yi amfani da -Bdynamic don wannan.

-o fitarwa

- fitarwa = fitarwa

Yi amfani da kayan aiki a matsayin sunan don shirin da aka samar da ld ; idan wannan ba'a ƙayyade ba, ana amfani da sunan a.out ta tsoho. Dokar rubutun "OUTPUT" zai iya ƙayyade sunan fayil ɗin fitarwa.

-O matakin

Idan matakin matakin lambobi ne mafi girma fiye da zero ld yana ƙaddamar da fitarwa. Wannan yana iya ɗaukar muhimmanci sosai kuma saboda haka ya kamata a kunna kawai don binary karshe.

-q

- -wallaka

Ka bar sassan sassa da abubuwan da ke ciki a cikin cikakkiyar sassaukan bayanai. Aiwatarwa da bayanan tashar bayanai da kayan aikin ingantawa na iya buƙatar wannan bayani don yin gyare-gyare masu kyau na masu aiki. Wannan yana haifar da manyan masu aiwatarwa.

Wannan zaɓi yanzu ana goyan baya a kan dandalin ELF.

-r

--relocateable

Ƙirƙirar fitarwa - watau, samar da fayil mai fitarwa wanda zai iya zama a matsayin shigarwa ga ld . An kira wannan mai saurin haɗin kai . A matsayi na ƙarshe, a cikin yanayin da ke goyan bayan lambobin sihiri na Unix, wannan zaɓi kuma ya sanya lambar sihirin fayil ta hanyar "OMAGIC". Idan an ba da wannan zaɓi ba, an samar da cikakken fayil din. A lokacin da ke haɗa haɗin C ++, wannan zaɓin ba zai warware ƙididdiga ga masu ginawa ba; don yin haka, amfani da -Ur .

Lokacin da fayilolin shigarwa ba su da tsari guda ɗaya a matsayin fayil ɗin fitarwa, haɗin kan iyaka ne kawai ana tallafawa idan wannan fayil ɗin shigar ba ya ƙunshi kowane ƙaura ba. Tsarin fitarwa daban-daban na iya ƙuntatawa; misali wasu "a.out" -added formats ba su goyi bayan hade tare da fayilolin shigarwa a wasu siffofin a duk.

Wannan zabin ya yi daidai da -i .

-R filename

- daidaita-alamomin = filename

Karanta sunayen alamomi da adiresoshin su daga filename , amma kada ka sake shi ko ka hada da shi a cikin fitarwa. Wannan yana ba da damar fayil ɗin fitarwa don komawa cikin alama zuwa cikakkun wurare na ƙwaƙwalwar ajiyar da aka ƙayyade a wasu shirye-shirye. Kuna iya amfani da wannan zaɓi fiye da sau daya.

Don dacewa tare da sauran masu haɗin ELF, idan an zaɓi -R zaɓi ta sunan shugabanci, maimakon sunan fayil, ana bi da shi azaman zaɓi -ppath .

-s

- riko-duk

Bire duk bayanan alama daga fayil ɗin fitarwa.

-S

- drip-debug

Yi watsi da bayanan mai amfani (amma ba duk alamomi) daga fayil din fitarwa ba.

-t

--trace

Rubuta sunayen fayilolin shigarwa kamar yadda ld ke tafiyar da su.

-T scriptfile

--script = scriptfile

Yi amfani da rubutun a matsayin rubutun linker. Wannan rubutun ya maye gurbin rubutun linker (maimakon ƙara zuwa gare shi), don haka dole ne kundin fayil ya rubuta duk abin da ya kamata ya bayyana fayil din fitarwa. Idan babu rubutun a cikin shugabanci na yanzu, "Ld" ya dubi shi a cikin kundayen adireshi da aka ƙayyade ta kowane zaɓi na gaba -L . Multiple - zažužžukan tara.

-u alama

--undefined = alama

Alamar karfi za a shigar a cikin fayil ɗin fitarwa kamar alamar da ba a bayyana ba. Yin wannan yana iya, alal misali, haifar da haɗin ƙarin ƙira daga ɗakunan karatu. -yaka iya maimaita su tare da jayayya daban-daban don shigar da alamomin da ba a bayyana ba. Wannan zaɓin ya dace da "rubutun rubutun maɓallin" EXTERN ".

-Ur

Ga wani abu ban da shirye-shiryen C ++, wannan zaɓi ya dace da -r : shi yana haifar da ƙaddamar da fitarwa - watau, fayil ɗin fitarwa wanda zai iya bi da bi zuwa labari zuwa ld . A lokacin da ke haɗin shirye-shiryen C ++, -Ya yanke shawarar nassoshi ga masu ginawa, ba kamar -r ba . Ba aiki don amfani ba --Da fayilolin da aka haɗu da su -Ur ; da zarar an gina gine-ginen tebur, baza a kara shi ba. Amfani daSai kawai don hanyar haɗi na karshe, da -r ga sauran.

--unique [= SASHE NA ]

Ya ƙirƙira ɓangaren rarrabuwa na rarraba don kowane ɓangaren shigar da aka daidaita SASHE , ko kuma idan zaɓin da aka zaɓa HASKIYAR sashi ya ɓace, ga kowane ɓangaren marayu. Wata ɓangaren marayu ba wanda aka ambata ba a cikin rubutun linker. Kuna iya amfani da wannan zaɓi sau da yawa akan layin umarni; Yana hana daidaituwa ta al'ada na ɓangaren shigarwa tare da wannan sunan, tareda rarraba kayan aiki na kayan aiki a cikin rubutun linker.

-v

- juyawa

-V

Nuna lambar sabunta don ld . Zaɓin -V ɗin kuma ya bada jerin abubuwan da aka tallafawa.

-x

--discard-duk

Share duk alamomin gida.

-X

- yanci-yan-gari

Share duk alamomin gida na wucin gadi. Ga mafi yawan hari, wannan shine alamomin gida waɗanda sunayensu suka fara da L.

-y alama

--trace-alama = alama

Rubuta sunan kowane fayil wanda aka haɗa da alamar alama . Za'a iya ba da wannan zaɓin kowane lokaci. A kan tsarin da yawa yana da muhimmanci don a dakatar da tabbatarwa.

Wannan zabin yana da amfani idan kana da alamar da ba a bayyana ba a cikin hanyar haɗinka amma ba ka san inda ake yin tunani ba.

-Y hanya

Ƙara hanya ga hanyar binciken ƙwaƙwalwar ajiyar tsoho. Wannan zaɓi ya kasance don haɗin Solaris.

-z keyword

A gane kalmomi suna "initfirst", "batu", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "yanzu", "asali", "combreloc", "nocombreloc" da "nocopyreloc ". An manta sauran kalmomi don haɗin Solaris. "initfirst" alamomi abu da za a fara farko a lokacin jinkiri kafin wani abu. "Alamar" alamar abin da alamar ta nuna shi a gaban dukkan alamomin amma alamar ta farko "loadfltr" ya nuna abin da aka sa kwamitocinsa a nan da nan a lokacin jinkirta. "nodefaultlib" ya nuna abin da binciken ne don dogara ga wannan abu zai watsi duk wata hanyar bincike na ɗakunan ajiya. "Nodelete" ya nuna cewa kada a sauke kayan a lokacin dan lokaci. "Nodlopen" alama alama ba samuwa ga "dlopen" ba. "Nodump" alama ba za a iya zubar da abu ba ta "dldump". "yanzu" alama alama tare da mai jinkirin jinkirin ɗauri. "asali" alamar alamar yana iya ƙunshi $ ORIGIN. "ya karyata" alamomi alamomin da ba a bayyana su ba. "muldefs" yana ba da ma'anoni masu yawa. "combreloc" ya haɗu da ƙauyuka da yawa kuma ya sanya su don yin alamar alamar nuna alama mai yiwuwa.

"nocombreloc" yana ƙin ƙananan sassan sassa. "nocopyreloc" ya hana samar da kwafin kwafi.

- ( tarihin -)

- Taswirar rukunin - kungiya-ƙungiya

Gidajen ya kamata ya zama jerin fayilolin ajiya . Suna iya zama ko dai sunayen fayilolin bayyane, ko -l zažužžukan.

An bincika bayanan da aka kayyade akai-akai har sai ba a sami sababbin bayanan da ba a bayyana ba. A yadda aka saba, ana bincika wani bayanan sau ɗaya kawai a cikin umarni cewa an ƙayyade a kan layin umarni. Idan ana buƙatar alamar alama a cikin ɗakin ajiya don warware alamar da ba a bayyana ba ta wani abu a cikin wani tarihin da ya bayyana a baya a kan layin umarni, mai haɗawa ba zai iya warware wannan batun ba. Ta hanyar rarraba ɗakunan ajiya, an bincika su duka akai-akai har sai an warware duk abubuwan da suka dace.

Amfani da wannan zaɓi yana da nauyin haɗari. Zai fi kyau a yi amfani da shi kawai idan akwai wasu kalmomin da ba a iya gani ba a tsakanin ɗakunan ajiya biyu ko fiye.

- yarda-unknown-shigar-baka

- ba da karɓa ba-unknown-shigar-baka

Ya gaya wa mahadar don karɓar fayilolin shigarwa wanda ba'a iya gane gine-gine ba. Maimaita shi ne cewa mai amfani ya san abin da suke yi kuma yana son ya danganta cikin waɗannan fayilolin shigarwa ba tare da gangan ba. Wannan ita ce hali na tsohuwar mai haɗawa, kafin saki 2.14. Ayyukan tsoho daga saki 2.14 shine ya ki amincewa da fayilolin shigarwa, saboda haka an zaɓi zaɓi - yarda-shigar-unknown-shigar-baka zaɓi don mayar da tsohuwar hali.

-assert keyword

An ba da wannan zaɓi don dacewar SunOS .

-Bdynamic

-dy

-call_shared

Ruwa da ɗakunan karatu masu ƙarfin hali. Wannan kawai mahimmanci ne a kan dandamali wanda aka ɗora ɗakin ɗakunan karatu . Wannan zabin shine al'ada tsoho a kan waɗannan dandamali. Bambancin daban-daban na wannan zaɓi suna dacewa da tsarin daban-daban. Kuna iya amfani da wannan zaɓi sau da yawa akan layin umarni: yana rinjayar ɗakunan bincike -l zažužžukan da suka biyo shi.

-Bgroup

Saita tutar "DF_1_GROUP" a cikin "DT_FLAGS_1" shigarwa a cikin ɓangaren tsauri. Wannan yana sa mai haɗin tafiyar lokaci don karɓar binciken a cikin wannan abu da dogara da za'a yi kawai a cikin ƙungiyar. - ba a bayyana shi ba. Wannan zabin yana da mahimmanci a kan dandalin ELF wanda ke tallafa wa ɗakunan karatu .

-Bstatic

-dn

-non_shared

-static

Kada ku haɗi da ɗakin ɗakunan karatu. Wannan kawai mahimmanci ne a kan dandamali wanda aka ɗora ɗakin ɗakunan karatu. Bambancin daban-daban na wannan zaɓi suna dacewa da tsarin daban-daban. Kuna iya amfani da wannan zaɓi sau da yawa akan layin umarni: yana rinjayar ɗakunan bincike -l zažužžukan da suka biyo shi.

-Bsymbolic

Lokacin ƙirƙirar ɗakin karatu na ɗakuna, ɗaukar zantuttukan alamomin duniya a cikin ma'anar a cikin ɗakin ɗakunan karatu, idan akwai. Yawanci, yana yiwuwa don haɗin shirin da aka haɗa da ɗakin ɗakunan ɗamara don ƙuntata ma'anar a cikin ɗakin karatu na ɗakunan. Wannan zabin yana da ma'ana a kan ELFplatforms wanda ke tallafawa ɗakunan karatu.

- ɓangaren ɓoyayye

- ɓangarorin da ba a duba ba

Tambayi mai ba da mahada don kada a bincika adiresoshin yankin bayan an sanya su don ganin idan akwai wani farfadowa. Yawancin lokaci mahaɗi zai yi wannan rajistan, kuma idan ya samo wani ɓangaren sama zai samar da saƙonnin kuskure dace. Mai mahada ya san game da shi, kuma yana sanya alamomi ga ɓangarori a cikin overlays. Za'a iya dawo da hali na tsohuwar ta hanyar amfani da maɓallin canjin umarni - ɓangaren sashe .

--cref

Sakamako a kan layin gicciye. Idan ana samar da fayilolin map din linker, ana buga maƙallin gicciye zuwa fayil ɗin taswira. In ba haka ba, ana buga shi a kan fitarwa na kwarai.

Tsarin tebur yana da sauki, don haka za'a iya sarrafa shi ta hanyar rubutun idan ya cancanta. Alamun suna bugawa, an ware su ta hanyar suna. Ga kowane alama, an ba da sunayen sunayen fayiloli. Idan an bayyana alamar, alamar farko da aka jera shi ne wuri na ma'anar. Sauran fayiloli sun haɗa da nassoshi ga alama.

--no-ƙayyade-na kowa

Wannan zaɓi ya hana aikin adiresoshin zuwa alamomin kowa. Dokar rubutun "INHIBIT_COMMON_ALLOCATION" tana da sakamako guda.

Ƙa'idar da ba a ƙayyade-ba-ƙayyade ba ta ba da damar ƙaddamar da shawarar da za a sanya adiresoshin zuwa alamomin Common daga zabi na nau'in fayil na kayan sarrafawa; in ba haka ba wani nau'in sarrafa kayan aiki wanda ba a sake komawa ba tare da ba da adireshin ga alamu na Common. Yin amfani da - ba a ƙayyade-na kowa yana ba da alamar Abubuwan da aka rubuta daga ɗakin ɗakunan ɗakunan don a sanya adireshin kawai a cikin babban shirin ba. Wannan yana kawar da sararin samaniya marar amfani a cikin ɗakin karatu mai ɗakuna, kuma yana hana duk wani rikicewar rikicewa akan warwarewa zuwa kuskuren kuskuren lokacin da akwai matuka masu dorewa da hanyoyi na musamman don neman nasarar alamar lokaci.

--defsym alama = bayyanawa

Ƙirƙirar alama ta duniya a cikin fayil ɗin fitarwa, dauke da cikakken adireshin da aka bayar. Kuna iya amfani da wannan zabin sau da yawa don zama dole don ayyana alamomi a cikin layin umarni. Wani nau'i na ilmin lissafi yana tallafawa don magana a cikin wannan mahallin: zaka iya bayar da ƙayyadadden hexadecimal ko sunan alamar da ake ciki, ko kuma amfani da "+" da "-" don ƙara ko cire abubuwan ƙwayoyin hexadecimal ko alamu. Idan kana buƙatar karin bayani mai mahimmanci, la'akari da yin amfani da harshe mai ba da mahada daga rubutun. Lura: kada a sami sararin sarari tsakanin alamar alama , alamar daidai (`` = ''), da kuma bayyanawa .

--demangle [= style ]

--no-demangle

Waɗannan zaɓuɓɓuka suna sarrafa ko don nuna sunayen alamomi a cikin saƙonnin kuskure da sauran fitarwa. Lokacin da aka gaya maƙerin zuwa demangle, yana ƙoƙari ya gabatar da sunayen alamomi a cikin layi mai ladabi: yana ɓoye kullun idan an yi amfani da shi ta hanyar tsarin fayil ɗin, sannan kuma ya canza alamar C ++ a cikin sunan mai amfani wanda aka iya lissafa. Dabbobi daban-daban suna da nau'i daban-daban. Za'a iya amfani da gardama na zabin da aka zaɓa don zaɓar hanyar da aka dace don mai ba da labari. Mai haɗin yanar gizon zai fara ta hanyar tsoho sai dai idan an saita yanayin ta COLLECT_NO_DEMANGLE . Za'a iya amfani da waɗannan zaɓuɓɓuka don ƙuntata tsoho.

Fayil din fayil din -dynamic-linker

Sanya sunan mahaɗin mai haɓaka. Wannan kawai yana da mahimmanci yayin da aka samar da ELF masu haɗin gwiwa. Mai haɓakawa mai haɓaka ta al'ada yana daidai daidai; Kada ku yi amfani da wannan sai kun san abin da kuke yi.

-embedded-relocs

Wannan zabin yana da mahimmanci lokacin da haɗin MIPS ya saka lambar PIC, wanda aka samar ta hanyar zaɓi -membedded-pic zuwa ga mai tarawa da mai tarawa GNU. Yana sa mai haɗi ya kirkiro tebur wanda za'a iya amfani da shi a lokacin jinkiri don sake komawa bayanan da aka ƙaddamar da shi a matsayin ma'auni. Dubi code a cikin testsuite / ld-empic don cikakkun bayanai.

- gargadi

Bi duk gargadi a matsayin kurakurai .

- iyaye-exe-suffix

Tabbatar cewa fayil na fitarwa yana da cikakkun .exe.

Idan nasarar nasarar gina cikakken fayil ɗin fitarwa ba shi da wani " exe " ko " .dll " cikakke, wannan zaɓi yana tilasta mahaɗi don kwafe fayil ɗin sarrafawa zuwa ɗaya daga cikin sunan daya tare da ".exe" suffix. Wannan zabin yana da amfani a yayin da ake amfani da Unix saitattun fayiloli a kan mashakin Microsoft Windows, tun da wasu sigogi na Windows ba za su gudanar da hoton ba sai dai idan ya ƙare a cikin ".exe" suffix.

--no-gc-sashe

--gc-sashe

Yi amfani da datti na ɓangarorin da aka shigar ba tare da amfani ba. An manta da shi a kan makasudin da ba su goyi bayan wannan zaɓi ba. Wannan zaɓi bai dace da -r ba , kuma bai kamata a yi amfani dashi tare da haɗin haɗakarwa ba. Halin ƙwaƙwalwa (na ba da yin wannan tarin datti ) ana iya dawowa ta hanyar ƙayyadewa --no-gc-sashe akan layin umarni.

--help

Rubuta taƙaitaccen jerin zaɓuɓɓukan umarni akan fitarwa da fitarwa.

- taimakon taimako

Rubuta taƙaitaccen dukkanin zaɓuɓɓukan zaɓuɓɓuka na musamman game da fitarwa da fitarwa.

-Map mapfile

Rubuta taswirar taswirar zuwa fayil din fayil. Dubi bayanin na zaɓi -M , a sama.

--ni-kiyaye-ƙwaƙwalwa

Ld yana daidaita don gudun kan ƙwaƙwalwar ƙwaƙwalwar ajiya ta hanyar ɓoye allo na alamun shigarwa cikin ƙwaƙwalwa. Wannan zabin ya gaya ld zuwa maimakon inganta don ƙwaƙwalwar ajiyar, ta sake sake saitin alamomi kamar yadda ya cancanta. Ana iya buƙatar wannan idan ld ya fita daga ƙwaƙwalwar ajiya yayin haɗi da babban aiki.

- ba a bayyana ba

-z ya karyata

Yawancin lokaci lokacin ƙirƙirar ɗakin karatu mai ban mamaki, alamar da aka ba da izini ba a yarda kuma an bar shi don ƙaddara ta mai ɗaukar lokaci. Wadannan zaɓuɓɓuka suna watsar da alamun da ba a bayyana ba.

- maɓalli-maɓalli-maɓalli

-d muldefs

A al'ada lokacin da aka nuna alamar sau da yawa, mai haɗawa zai bayar da rahoton kuskure mai kuskure. Wadannan zaɓuɓɓuka suna bada izinin ma'anoni da ma'anar farko za a yi amfani.

--allow-shlib-undefined

Bada alamar da ba a bayyana ba a cikin abubuwa masu tarayya ko da lokacin - an saita saituna. Sakamakon sakamakon zai zama cewa alamun da ba a bayyana ba a cikin abubuwa na yau da kullum zai haifar da kuskure, amma alamun da ba a bayyana ba a cikin abubuwan da aka haɗi za a yi watsi. Yin aiwatar da no_undefined ya sa zato cewa mai haɗin gudu mai gudu zai shawo kan alamar da ba a bayyana ba. Duk da haka akwai akalla tsarin daya (BeOS) inda alamun da ba a bayyana ba a cikin ɗakunan karatu na al'ada tun lokacin da kwaya ke sa su a ɗaukar lokaci don zaɓar wane aiki yafi dacewa da gine-gine na yanzu. IE da karfi ya zaɓi aiki dacewa mai dacewa. A bayyane yake ma al'ada ce ga kamfanonin HPPA masu ɗakunan karatu don samun alamun da ba a bayyana ba.

--no-undefined-version

A al'ada lokacin da alamar alama tana da wani ɓangaren da ba a bayyana ba, mai haɗin hanyar zai watsi da shi. Wannan zaɓin ya ɓoye alamomi tare da ɓangaren da ba a bayyana ba kuma kuskuren kuskure za a bayar a maimakon.

--ni-gargadi-mismatch

Yawancin lokaci ld zai ba da kuskure idan kuna kokarin hadawa tare da fayilolin shigarwa wadanda ba a ɓoye su don wasu dalili, watakila saboda an tattara su don masu sarrafawa daban-daban ko kuma daban-daban. Wannan zabin ya gaya wa ld cewa ya kamata shiru ya ba da izinin kurakurai irin wannan. Za'a yi amfani da wannan zaɓin kawai tare da kulawa, a lokuta lokacin da ka ɗauki wani aikin na musamman wanda zai tabbatar da cewa kurakuran kuskure ba daidai ba ne.

--no-dukan-archive

Kashe sakamakon tashar archive --whole don fayilolin ajiya na gaba.

--noinge-exec

Tsayar da fayil ɗin sarrafawa a duk lokacin da yake amfani da shi. Yawanci, mahaɗi ba zai samar da fayil ɗin fitarwa ba idan ya fuskanci kurakurai a lokacin hanyar haɗin gwiwa; shi yana fita ba tare da rubuta fayil ɗin sarrafawa ba yayin da ya shafi kowane kuskure.

-nostdlib

Kundin adireshin binciken kawai ne kawai aka bayyana akan layin umarni. Kundin kantin sayar da kundin da aka kayyade a cikin rubutun linker (ciki har da rubutun linker da aka kayyade akan layin umarni) ana watsi.

--oformat fitarwa-tsarin

Ld za a iya saita shi don tallafawa fiye da ɗaya nau'in fayil ɗin abu. Idan an saita ld ɗin wannan hanya, zaka iya amfani da zaɓi --oformat don saka tsarin binary don fayil ɗin kayan kayan fitarwa. Koda lokacin da aka tsara ld don tallafawa tsarin tsari daban, bazai buƙaci a saka wannan ba, kamar yadda Ld ya kamata a saita shi don samar da shi azaman tsoho fitarwa tsarin mafi yawan al'ada a kowane na'ura. fitarwa-tsarin shi ne rubutu rubutu, sunan wani nau'i na goyon bayan ɗakunan karatu na BFD. (Zaka iya lissafin tsarin binary da aka samo tare da objdump -i .) Dokar rubutun "OUTPUT_FORMAT" na iya ƙayyade tsarin fitarwa, amma wannan zaɓi ya rinjaye shi.

-qmagic

An kori wannan zaɓin don daidaitattun Linux.

-Sai

An bar wannan zaɓi don karɓar SVR4.

--Huta

Wani zaɓi tare da tasirin abin dogara na na'ura. Wannan zaɓin kawai ana goyan baya akan wasu ƙira.

A kan wasu dandamali, zaɓi na --relax yana yin fasali na duniya wanda zai yiwu a yayin da mai haɗin linzami ya magance magancewa a cikin shirin, kamar su shahararrun hanyoyin adireshi da kuma haɗawa da sababbin umarnin a fayil din kayan kayan aiki.

A kan wasu dandamali waɗannan haɗin haɗin lokaci lokaci-bayan nan na duniya zai iya haifar da lalacewa na alama sakamakon sakamakon da ba zai yiwu ba. Wannan sanannun shine lamarin ga Matsushita MN10200and MN10300 iyalin masu sarrafawa.

A kan dandamali inda ba a goyan baya ba, - ana karɓa, amma ba a kula ba.

--retain-alamomin-file filename

Kula kawai alamomin da aka jera a filename fayil, watsar da duk sauran. filename ne kawai fayil mai layi, tare da alamar alama ta kowace layi. Wannan zabin yana da amfani sosai a wurare (kamar VxWorks) inda aka tara ɗakin manyan alamun duniya, don kiyaye ƙwaƙwalwar ajiyar lokaci.

- fayil-alamar-alamar ba ta zubar da alamar da ba a bayyana ba, ko alamomin da ake bukata don ƙaura.

Za ka iya rubutawa kawai - alamar-alamar-fayil sau ɗaya a cikin layin umarni. Yana rinjaye -s da -S .

-dpath dir

Ƙara shugabanci zuwa hanyar bincike na ɗakin karatu na lokaci. Anyi amfani dashi lokacin da haɗin ELFexecutable tare da abubuwa masu tarayya. Dukkanin muhawarar da aka ƙaddamar da su suna ƙaddamar da shi kuma sun wuce zuwa mai haɗin kai mai gudu, wanda ke amfani da su don gano abubuwan da aka haɗe a lokacin jinkirin. Za'a iya amfani da zaɓi -ppath a yayin da aka gano abubuwa masu mahimmanci waɗanda ake buƙata ta hanyar abubuwan da aka haɗa da su a cikin hanyar haɗi; duba bayanin irin zaɓi -rpath-link . Idan ba a yi amfani da -ppath ba a yayin da aka haɗu da ELF za a iya aiwatarwa, za a yi amfani da abinda ke ciki na "LD_RUN_PATH" yanayi don amfani idan an bayyana shi.

Za'a iya amfani da maɓallin zaɓi -dpath a kan SunOS. Ta hanyar tsoho, a kan SunOS, mai haɗin linzami zai samar da takaddun bincike na lokaci-lokaci daga duk -L zaɓin da aka ba shi. Idan an yi amfani da wani zaɓi na-- ɓoye , za a kafa hanyar binciken lokaci ta hanyoyi ta atomatik ta yin amfani da zaɓuɓɓuka -ppath , ba tare da kula da zažužžukan -L ba. Wannan na iya zama da amfani a yayin amfani da gcc, wanda ya kara da yawa -L zaɓuɓɓuka waɗanda za a iya kasancewa a kan fayiloli na NFS.

Don dacewa tare da sauran masu haɗin ELF, idan an zaɓi -R zaɓi ta sunan shugabanci, maimakon sunan fayil, ana bi da shi azaman zaɓi -ppath .

-rpath-link DIR

Lokacin amfani da ELF ko SunOS, ɗayan ɗakin karatu ɗaya zai iya buƙatar wani. Wannan yana faruwa a yayin da "ld -shared" ya haɗa da ɗakunan karatu na ɗayan ɗayan fayilolin shigarwa.

Lokacin da masu sadarwar masu haɗin kai sun dogara kamar yadda suke amfani da su, ba za su iya yin amfani da su ba, don haka ba za su iya ba da damar yin amfani da su ba. A irin wannan hali, zaɓi -rpath-link zaɓi ƙayyade na farko na kundayen adireshi don bincika. Zaɓin zaɓi -rpath-link zai iya ƙayyade jerin jerin sunayen shugabanci ko dai ta hanyar ƙayyade jerin sunayen rabuwa da mazauna, ko ta hanyar bayyana sau da yawa.

Dole ne a yi amfani da wannan zaɓi tare da taka tsantsan yayin da yake shafe hanyar bincike wadda za ta kasance da wuya a haɗa shi a cikin ɗakin karatu mai ɗakuna. A irin wannan yanayin akwai yiwu a yi amfani da hanyar bincike daban-daban ba tare da gangan ba da mai haɗin gudu mai gudu zai yi.

Mai mahada yana amfani da hanyoyin binciken da za a bi don gano wuraren buƙatun da aka buƙata.

1.

Duk wani kundin adireshi wanda aka ƙayyade ta hanyar zabin hanyar haɗi .

2.

Duk wani kundin adireshi wanda aka ƙayyade ta hanyar zaɓuɓɓuka. Bambanci tsakanin -rpath da -rpath-link shi ne cewa kundayen adireshi da aka ƙayyade ta hanyar -dpath zažužžukan an haɗa su a cikin aiwatarwa da kuma amfani a lokacin jinkirin, yayin da zaɓi -rpath-link ne kawai tasiri a lokacin haɗi. Yana da maƙasudin alamar ƙasa kawai.

3.

A tsarin ELF, idan ba a yi amfani da zažužžukan -ppath da "rpath-link" ba, bincika abinda ke ciki na yanayin "LD_RUN_PATH". Yana da maƙasudin alamar ƙasa kawai.

4.

A kan SunOS, idan ba a yi amfani da zaɓi -ppath ba, bincika kundayen adireshi da aka kayyade ta amfani da -L zažužžukan.

5.

Don mai haɗin maƙasudin ƙasa, abin da ke cikin yanayin yanayi "LD_LIBRARY_PATH".

6.

Ga wata alamar ELF mai amfani, masu kundayen adireshi a "DT_RUNPATH" ko "DT_RPATH" na ɗakin ɗakunan karatu suna bincike ne don ɗakunan karatu da aka buƙata da shi. An shigar da shigarwar "DT_RPATH" idan an shigar da shigarwar "DT_RUNPATH".

7.

Lambobin adireshin da aka saba, kullum / lib da / usr / lib .

8.

Domin dangi na asali a kan tsarin ELF, idan fayil /etc/ld.so.conf ya kasance, jerin sunayen kundayen adireshi da aka samu a wannan fayil ɗin.

Idan ba a samo ɗakin ɗakunan karatu wanda aka buƙata ba, mai haɗawa zai ba da gargadi kuma ci gaba da haɗin.

-shared

-Bshareable

Ƙirƙiri ɗakin ɗakunan karatu. Wannan halin yanzu ana goyan baya akan tsarin ELF, XCOFF da SunOS. A SunOS, mai haɗin yanar gizo za ta ƙirƙirar ɗakin karatu na atomatik idan an ba-an zaɓi ba kuma akwai alamun da ba a bayyana ba a cikin haɗin.

- na kowa

Wannan zabin ya gaya wa ld don rarraba alamomin na kowa da girman lokacin da ya sanya su cikin sassan kayan fitarwa. Da farko dai zo dukkan alamomi guda ɗaya, sa'an nan kuma duka byte biyu, sa'an nan kuma duk byte huɗu, sa'an nan kuma duk abin da. Wannan shi ne don hana haɗin tsakanin alamomin saboda matsalolin ƙira.

--split-by-file [ size ]

Hakazalika - - ƙaura-da-sake-sake amma ya haifar da sabon fitarwa don kowane fayil shigar lokacin da girman ya kai. Girman matsala zuwa girman 1 idan ba a ba su ba.

--split-by-reloc [ ƙidaya ]

Kira don ƙirƙirar ɓangarori a cikin fayil ɗin sarrafawa don kada wani ɓangaren fitarwa a cikin fayil ya ƙunshi fiye da ƙidayar ƙidaya . Wannan yana da amfani a yayin da ake samar da fayiloli mai mahimmanci don saukewa zuwa wasu kernels na ainihi tare da tsarin fayil na COFF; tun lokacin da COFFcannot ya wakilci fiye da 65535 ƙaura a cikin wani sashe guda. Yi la'akari da cewa wannan zai kasa yin aiki tare da tsarin fayil ɗin kayan aiki waɗanda ba su goyan bayan sassan jabu ba. Mai haɗin yanar gizo ba zai rarraba ɓangaren shigarwa na mutum don gyarawa ba, don haka idan ƙungiyar ɓangaren ƙungiya ya ƙunshi fiye da ƙaurawar ƙididdigawa ɗayan sashen fitarwa zai ƙunshi wannan ƙaura da yawa. ƙidaya ƙididdiga zuwa darajar 32768.

--satsai

Yi lissafi da nuna bayanan game da aiki na mahaɗi, irin su lokacin kisa da ƙwaƙwalwar ajiyar.

- Tsarin mahimmanci

Ga wasu manufofi, fitarwa na ld ya bambanta a wasu hanyoyi daga fitarwa na wasu mahaɗar mai haɗin. Wannan buƙatar buƙatun ld don amfani da tsarin gargajiya maimakon.

Alal misali, a kan SunOS, ld ya haɗu da shigarwar dallali a cikin teburin alamar alamar. Wannan zai iya rage yawan fayil ɗin mai fitarwa tare da cikakken bayanin lalacewa ta fiye da kashi 30. Abin takaici, shirin SunOS "dbx" ba zai iya karanta shirin da aka samu ba ("gdb" ba shi da damuwa). Maganin tsari - mai mahimmanci ya gaya wa ld kada ya haɗu da shigarwar dalla-dalla.

--section-fara sectionname = org

Gano wani sashi a cikin fayil ɗin fitarwa a cikakken adireshin da org ya bayar . Kuna iya amfani da wannan zaɓi sau da yawa don ya zama dole don gano wuri da yawa a cikin layin umarni. org dole ne ya zama mahaɗin mahaɗin hexadecimal; don daidaitawa tare da sauran masu haɗin gwiwar, zaka iya ƙetare manyan 0x yawanci hade da halayen hexadecimal. Lura: kada a sami sararin sarari a tsakani tsakanin sunan mai suna , alamar daidai (`` = ''), da org .

-Tbss org

-Tdata org

-Text kog

Yi amfani da kog a matsayin adireshin farawa don --- daidai da --- da "bss", "bayanai", ko sashen "rubutu" na fayil ɗin fitarwa. org dole ne ya zama mahaɗin mahaɗin hexadecimal; don daidaitawa tare da sauran masu haɗin gwiwar, zaka iya ƙetare manyan 0x yawanci hade da halayen hexadecimal.

--dll-verbose

--verbose

Nuna lambar sabuntawa don ld kuma lissafin mahaɗin mahaɗin da aka goyan baya. Nuna abin da fayilolin shigarwa zai iya kuma baza a bude ba. Nuna rubutun linker wanda mai amfani ya yi amfani dasu.

--version-script = version-scriptfile

Saka sunan sunan rubutun zuwa mai haɗawa. Ana amfani da shi a mafi yawan lokuta a yayin ƙirƙirar ɗakin dakunan karatu don ƙayyade ƙarin bayani game da yanayin da aka yi don ɗakin ɗakin karatu. Wannan zabin yana da mahimmanci a kan dandalin ELF wanda ke tallafa wa ɗakunan karatu.

--warn-common

Yi gargadin idan an haɗa alamar taɗi tare da alama ta kowa ko tare da alamar alama. Masu haɗi na Unix sun ba da izinin wannan aiki mara kyau, amma masu haɗin kan wasu tsarin aiki ba. Wannan zaɓi yana ba ka damar samun matsalolin matsalolin hada haɗin duniya. Abin takaici, wasu ɗakunan C suna amfani da wannan aikin, saboda haka za ka iya samun gargadi game da alamomin a cikin ɗakunan karatu da kuma a cikin shirye-shirye naka.

Akwai alamomi guda uku na alamun duniya, wanda aka kwatanta a nan ta C misalai:

int i = 1;

Bayanin ma'anar, wanda ke shiga cikin ɓangaren bayanan da aka samo daga fayil na kayan sarrafawa.

waje int i;

Bayanin da ba a bayyana ba, wanda ba ya raba sararin samaniya. Dole ne ko ma'anar ma'anar ko alama ta kowa don canza wuri a wani wuri.

int;

Alamar kowa. Idan akwai kawai alamun (ɗaya ko fiye) alamar na kowa don m, yana shiga cikin ɓangaren bayanan da ba a bude ba na fayil din fitarwa. Mai haɗi yana haɗin alamomin alamomi daban-daban don irin wannan ma'auni a cikin alama guda. Idan sun kasance masu girma dabam dabam, zai ɗauki mafi girman girman. Mai mahada ya juya alama ta kowa a cikin wani furci, idan akwai fassarar maɗaukaki guda.

Zaɓin -warn-common zaɓi na iya haifar da nau'i biyar na gargadi. Kowane gargadi yana kunshe da wata layi: na farko ya bayyana alamar da kawai ya sadu, kuma na biyu ya kwatanta alamar da aka samo tare da wannan sunan. Daya ko biyu na alamomin guda biyu za su kasance alama ce ta kowa.

1.

Juya alama ta kowa a cikin mahimmanci, domin akwai rigaya ma'anar alama.

(): gargadi: na kowa na < 'an rufe ta ta definition (): gargadi: an bayyana a nan

2.

Juya alama ta kowa a cikin mahimmanci, domin an gano ma'anar ƙayyadaddun alamar. Wannan daidai yake da yanayin da ya gabata, sai dai idan alamun suna fuskantar su a cikin tsari daban-daban.

(): gargadi: ma'anar " (): gargadi: na kowa yana nan

3.

Gudanar da alama ta kowa tare da alamomin da aka samo asali.

(<ɓangare>): gargadi: yawan yawa na '' (<ɓangare>): gargadi: na gaba da kowa yana nan

4.

Gudanar da alama ta kowa tare da alama mai girma ta gaba da ta gaba.

(<ɓangare>): gargadi: na kowa na " (): gargadi: ya fi girma kowa yana nan

5.

Samar tare da alama ta kowa tare da alamar da aka fi sani da baya. Wannan daidai yake da yanayin da ya gabata, sai dai idan alamun suna fuskantar su a cikin tsari daban-daban.

(): gargadi: na kowa na < 'rinjaye ƙananan (<ɓangare>): gargadi: karami ya fi yawa a nan

-warn-constructors

Yi gargadi idan ana amfani da masu ginin duniya. Wannan kawai amfani ne ga wasu matakan fayiloli. Don siffofin kamar COFF ko ELF, mai haɗa mahaɗin ba zai iya gano amfani da masu ginin duniya ba.

--warn-multiple-gp

Yi gargadi idan ana buƙatar adadin nau'in maɓallin duniya a cikin fayil ɗin fitarwa . Wannan shine kawai ma'anar wasu na'urori, irin su Alpha. Musamman, wasu na'urori masu sarrafawa sun sanya maɗaukaka masu daraja a cikin sashe na musamman. Wani rijista na musamman (mahaɗin duniya) yana nunawa cikin tsakiyar wannan sashe, don haka za'a iya ɗaukar ma'aunin ƙwaƙwalwar ajiya ta hanyar hanyar adreshin haɗin kai. Tun lokacin da farashin da aka yi a cikin alamar rikodin rikodin tsari an kafa shi kuma yana da ƙananan ƙananan (misali, rabi 16), wannan yana ƙayyade matsakaicin adadin ɗakunan ruwa. Saboda haka, a cikin manyan shirye-shiryen, sau da yawa wajibi ne a yi amfani da ƙididdigar mahallin duniya don ya iya magance dukkan haɓaka. Wannan zaɓin zai haifar da gargadi a kowane lokuta.

--warn-sau ɗaya

Yi gargadi kawai ga kowane alamar da ba a bayyana ba, maimakon sau ɗaya a kowane ɓangaren da yake nufin shi.

--warn-section-align

Yi gargadi idan an canza adireshin wani ɓangaren fitarwa saboda alignment. Yawancin lokaci, haɗin za a saita ta hanyar shigarwa. Adireshin za a canza kawai idan ba a bayyana shi a bayyane ba; wato, idan umurnin "SASHE" ba ya ƙayyade adireshin farko ga sashe ba.

--whole-archive

Ga kowane ɗakunan da aka ambata a kan layin umarni bayan anan zaɓin --whole-archive , hada da kowane fayil na kayan aiki a cikin tarihin a cikin hanyar haɗi, maimakon neman archive don fayilolin abubuwan da ake bukata. Ana amfani da shi a yau da kullum don kunna fayil ɗin ajiya a cikin ɗakin karatu mai ɗakuna, tilasta kowane abu da za a haɗa shi a cikin ɗakunan karatu wanda aka raba. Za'a iya amfani da wannan zaɓi fiye da sau ɗaya.

Biyu bayanai lokacin amfani da wannan zaɓi daga gcc: Na farko, gcc bai san game da wannan ba, don haka dole ka yi amfani da -Wl, -whole-archive . Abu na biyu, kar ka manta da amfani da -Wl, -n-gaba-tarihin bayan jerin abubuwan ajiyar ku, domin gcc zai ƙara jerin abubuwan ɗakunan ajiya zuwa hanyar haɗin ku kuma bazai so wannan alamar ta shafi wadanda.

--wada alama

Yi amfani da aikin rufewa don alama . Duk wani bayanin da ba a bayyana ba ga alamar alama za a warware shi zuwa "__ wrap_symbol". Duk wani bayanin da ba a bayyana ba ga "__real_symbol" za a warware shi don alama .

Ana iya amfani da wannan don samar da abun kunshe don tsarin aiki. Dole ne a kira aikin rufe "__wrap_symbol". Idan yana son kiran aikin tsarin, ya kamata ya kira "__ real_symbol".

Ga misali maras kyau:

void * __wrap_malloc (int c) {printf ("malloc da aka kira tare da% ld \ n", c); dawo __real_malloc (c); }

Idan kun haɗa wasu lambar tare da wannan fayil ta amfani da - ku malloc , to, duk kira zuwa "malloc" zai kira aikin "__wrap_malloc" a maimakon. Kira zuwa "__real_malloc" a "__wrap_malloc" zai kira ainihin aikin "malloc".

Kuna so don samar da aikin "__real_malloc", don haka haɗi ba tare da zaɓin zaɓi - zaɓi ba zai yi nasara. Idan kunyi haka, kada ku sanya ma'anar "__ real_malloc" a cikin fayil guda kamar "__wrap_malloc"; idan kunyi haka, mai tara zai iya warware kira kafin mai haɗi yana da damar sanya shi zuwa "malloc".

--yawa-sabon-dtags

--disable-new-dtags

Wannan mahaɗi zai iya haifar da sababbin tags a cikin ELF. Amma tsarin na ELF tsofaffi bazai fahimta ba. Idan ka saka -dable-new-dtags , za a ƙirƙira masu amfani da ƙwaƙwalwa kamar yadda ake bukata. Idan ka saka --disable-new-dtags , babu sabon tsauri tags za a halitta. Ta hanyar tsoho, ba a ƙirƙiri sababbin alamar jariri ba. Lura cewa waɗannan zaɓuɓɓuka suna samuwa ne kawai don tsarin tsarin forELF.

Mai haɗin i386 PE yana goyan bayan zaɓi na zabin, wanda ke haifar da fitarwa ya zama ɗakin ɗakunan da ke da nasaba da karfi (DLL) maimakon wani abu mai yiwuwa. Ya kamata ka kira da kayan aiki "* .dll" lokacin da kake amfani da wannan zaɓi. Bugu da ƙari, mai haɗawa yana goyon bayan fayilolin '* .def' 'mai cikakke, wanda ƙila za a ƙayyade a kan layin umurnin mai haɗin linzamin kamar fayil ɗin abu (a gaskiya, ya kamata ya riga ya ajiye ajiyar shi yana fitar da alamomi daga, don tabbatar da cewa suna da nasaba, kamar fayilolin abu na al'ada).

Bugu da ƙari da zaɓuɓɓukan da aka saba da su a duk fannoni, mai haɗin i386 PE yana tallafawa ƙarin zaɓi na layin umarni waɗanda suke da ƙayyadaddun i386 PE. Zaɓuɓɓuka waɗanda suke ɗaukar dabi'u zasu iya raba su daga dabi'arsu ta hanyar sarari ko alamar daidai.

--add-stdcall-alias

Idan an ba da, alamar da za'a iya fitar dashi (@ nn ) za a fitar dashi kamar yadda yake da kuma tare da sufurin da aka kwace.

fayil din fayil -base- file

Yi amfani da fayil a matsayin sunan fayil wanda zai adana adireshin adireshin dukan dukiyoyin da ake bukata don samar da DLLs tare da dlltool .

--Dll

Ƙirƙirar DLL maimakon aiki na yau da kullum. Kuna iya amfani da -shared ko saka "LANGUTAR" a cikin fayil ".def" da aka ba da.

--enable-stdcall-fixup

--disable-stdcall-fixup

Idan mahadar ta sami alamar da ba za ta iya warwarewa ba, zai yi ƙoƙarin yin '' haɗin gwiwa 'ta hanyar neman wani alama da aka kwatanta wanda ya bambanta ne kawai a tsarin tsarin alamar (cdecl vs stdcall) kuma zai warware wannan alamar ta haɗawa zuwa wasan. Alal misali, alamar da ba a bayyana ba "_foo 'za a iya danganta shi da aikin" _foo @ 12 ", ko alamar da ba a fassara ba" _bar @ 16 "za a iya danganta shi da aikin" _bar ". Lokacin da mai haɗi ya yi haka, yana wallafa wani gargadi, tun da ya kamata ya yi kuskure ya haɗi, amma wani lokaci ana shigo da ɗakin ɗakunan karatu daga ƙananan daks na iya buƙatar wannan fasalin ya zama mai amfani. Idan ka siffanta -enable-stdcall-fixup , wannan fasalin ya cika sosai kuma ba a buga gargadi ba. Idan ka saka --disable-stdcall-fixup , wannan fasalin ya ƙare kuma irin wannan mummunan ana daukar su kurakurai ne.

- fitarwa-duk-alamomi

Idan aka ba, duk alamun duniya a cikin abubuwa da ake amfani da su don gina DLL za a fitar dashi ta DLL. Lura cewa wannan ita ce tsoho idan akwai in ba haka ba wata alama ce ta fitar. Lokacin da aka fitar da alamomi ta hanyar fayiloli DEF ko a fitar dasu ta hanyar halayen halayen, tsoho shine kada a fitar da wani abu sai dai idan an ba wannan wannan zaɓi. Ka lura cewa alamar "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", da "impure_ptr" ba za a fitar dashi ta atomatik ba. Har ila yau, alamu da aka shigo da wasu DLLs ba za a sake fitar da su ba, kuma ba alamun da za su kwatanta layin na DLL na ciki kamar su fara da "_head_" ko ƙare tare da "_iname". Bugu da kari, babu alamomi daga "libgcc", "libstd ++", "libmingw32", ko "crtX.o" za a fitar da su. Alamomin da sunayensu suka fara da "__rtti_" ko "__builtin_" ba za'a fitar dasu ba, don taimakawa tare da C ++ DLLs. A ƙarshe, akwai jerin labaran sunaye masu amfani da cygwin-masu zaman kansu waɗanda ba a fitar da su (a bayyane yake, wannan ya shafi a lokacin da ake gina DLLs don samfuri na cygwin).

Wadannan waɗannan sune: "_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 ", da kuma" kusan ".

--exclude-alamomin alama , alama , ...

Ya ƙayyade jerin alamomin da ba za a fitar dasu ta atomatik ba. Alamomin alamar suna iya zamawa ta hanyar ƙwararrawa ko colons.

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

Yana ƙayyade jerin ɗakunan ajiyar ɗakunan karatu daga abin da alamomi ba za a fitar dasu ta atomatik ba. Za'a iya danganta sunayen ɗakunan ajiya ta ƙwararra ko colons. Ƙayyadewa "--Kayyayye-libs ALL" ba tare da alamomi a cikin ɗakunan ajiyar ɗakunan ajiya daga fitarwa ta atomatik ba. Alamomin da aka lissafa a bayyane a cikin fayil .def suna fitar da su, koda kuwa wannan zaɓi.

- daidaitawa-daidaitawa

Saka fayil din jeri. Sashe a cikin fayil zai fara koyaushe a cikin fayilolin fayil waɗanda suke da yawa na wannan lambar. Wannan ladabi zuwa 512.

- ajiyewa

--heap ajiye , aikata

Saka adadin ƙwaƙwalwar ajiya don ajiyewa (kuma ba za a yi ba) don amfani da shi don tarin wannan shirin. A tsoho shi ne 1Mb ajiye, 4K aikata.

- darajar - ma'auni

Yi amfani da darajar matsayin adireshin tushe na shirinku ko dll. Wannan shi ne mafi ƙasƙanci ƙwaƙwalwar ajiyar da za a yi amfani dashi lokacin da aka ɗora maka shirin ko dll. Don rage bukatar da za a sake komawa da kuma inganta aikinku na dlls, kowanne ya kamata ya sami adireshin tushe na musamman kuma kada ya sake yin wani dill. A tsoho shi ne 0x400000 don executables, da kuma 0x10000000 don dlls.

--kill-at

Idan an ba shi, za a cire adfcord suffixes (@ nn ) daga alamomi kafin a fitar da su.

- darajar darajar --major-image-version

Ya sanya mafi yawan '`image version' '. Defaults zuwa 1.

--major-os-version darajar

Ya kafa mafi yawan '' os version ''. Defaults zuwa 4.

--major-subsystem-version darajar

Ya sanya babban adadin '' tsarin tsarin ''. Defaults zuwa 4.

- darajar hoto -minor-image

Ƙayyade ƙananan lambar '`image version' '. Defaults zuwa 0.

--minor-os-version darajar

Ƙayyade ƙananan lambar '' os version ''. Defaults zuwa 0.

--minor-subsystem-version value

Ƙayyade ƙananan lambar '`tsarin' ''. Defaults zuwa 0.

- Fayil ɗin fayil mai ƙayyadewa

Mai haɗin yanar gizo zai ƙirƙiri fayil ɗin fayil wanda zai ƙunshi fayil din DEF daidai da DLL mai haɗawa yana samarwa. Wannan fayil DEF (wadda ake kira "* .def") za a iya amfani da shi don ƙirƙirar ɗakin ajiyar buƙata tare da "dlltool" ko za a iya amfani dashi azaman tunani akan alamomin da aka fitar da ta atomatik ko alal misali.

Fayil -out-implib fayil

Mai haɗin yanar gizon zai ƙirƙiri fayil ɗin fayil wanda zai ƙunshi mai shigo da samfurin lib zuwa DLL mai haɗawa yana samarwa. Wannan shigo da lib (wanda ake kira "* .dll.a" ko "* .a" za a iya amfani dashi don danganta abokan ciniki akan DLL mai sarrafawa; wannan hali yana iya yiwuwa ya tsallake mataki na "dlltool" shigarwa.

Abubuwan da ake iya amfani da su-mai sauƙi

A zabi ta atomatik ga asali na DLLs, sai dai idan an bayyana shi ta yin amfani da hujjar "-image-tushe". Ta amfani da hasken da aka samo daga dllname don ƙirƙirar ɗakunan tasiri na musamman ga kowane DLL, ƙaddamarwar ƙwaƙwalwa da ƙaura wanda zai jinkirta jinkirin kisa.

- zanawa-auto-image-tushe

Kada ku samar da maɓallin hoto na musamman. Idan babu wani bayanan hoton mai amfani da aka ƙayyade ("-image-tushe") to sai ku yi amfani da dandalin dandalin.

- kirkirar mahimman bayanai -dll-prefix

A lokacin da ke haɗuwa da hanzari zuwa dll ba tare da ɗakin karatu ba, nemi " .dll" a maimakon "lib .dll". Wannan hali ya ba da damar bambanci tsakanin DLLs da aka gina domin '' subplatforms '' '': 'yan ƙasa, cygwin, uwin, pw, da dai sauransu. Alal misali, cygwin DLLs yakan yi amfani da "--dll-search-prefix = cyg".

- -adable-auto-shigo da

Shin sophisticated haɗawa da "_symbol" zuwa "__impelsymbol" don DATA ya shigo daga DLLs, da kuma kirkiro alamu da ake buƙata ta hanyar gina gine-ginen mai shigo da waɗannan DATAexports. Wannan zai zama "kawai aiki" --- amma wani lokacin za ku ga wannan sakon:

"m" "ba za a iya shigo da shi ba. Karanta abubuwan da aka rubuta don Ld ta" -enable-auto-import "don cikakkun bayanai."

Wannan sakon yana faruwa ne lokacin da wasu (sub) magana ta isa ga adireshin da aka ba da jimlar maƙallan guda biyu (Tables mai shigowa Win32 sun yarda da ɗaya). Ayyukan da wannan zai faru ya ƙunshi damar shiga ga membobin mambobi na tsarin da za'a iya shigo da shi daga DLL, da kuma yin amfani da alamomi mai tsawo a cikin tsararren tsararren da aka shigo daga DLL. Duk wani nau'i na multiword (ƙayyadaddun abubuwa, ƙwarewa, dogon dogon lokaci, da dai sauransu) na iya jawo wannan kuskuren yanayin. Duk da haka, ba tare da ainihin nau'in bayanan da aka fitar dashi ba, Ld zai gano shi kullum, fito da gargadi, da kuma fita.

Akwai hanyoyi da dama don magance wannan matsala, koda kuwa irin nau'ikan bayanan da aka fitar dashi:

Wata hanya ita ce yin amfani da canji mai sauƙi-mai saurin gudu-lokaci-lokaci. Wannan ya bar aikin daidaitawa nassoshi a lambar abokin ku don yanayin gudu, don haka wannan hanya tana aiki ne kawai lokacin da hoton lokaci yana goyon bayan wannan alama.

Hanya na biyu shine a tilasta daya daga cikin 'constants' don zama mai sauya - wato, ba a sani ba kuma ba a iya gyarawa ba a tattara lokaci. Don ƙyama, akwai hanyoyi guda biyu: a) sanya indexee (adireshin mahaɗin) wani m, ko b) sa 'index' a madadin. Ta haka:

External irin extern_array []; extern_array [1] -> {nau'in muni * t = extern_array; t [1]}

ko

External irin extern_array []; extern_array [1] -> {maras amfani int t = 1; extern_array [t]}

Don ƙarfafawa (da kuma sauran yawan bayanai na multiword) kawai zaɓin shine don yin tsarin kanta (ko tsawon lokaci, ko ...) m:

extern struct s extern_struct; extern_struct.field -> {ƙarancin tsarin s * t = & extern_struct; t-> filin}

ko

Extern long long extern_ll; extern_ll -> {maras tabbas tsawo dogon * local_ll = & extern_ll; * local_ll}

Hanya na uku da ake magance wannan matsala ita ce watsar da "fitarwa ta atomatik" don alamar nuna damuwa da kuma sanya shi da "__declspec (dllimport)". Duk da haka, a cikin aikin da ake buƙatar yin amfani da ƙayyadaddun lokaci #defines don nuna ko kuna gina DLL, gina lambar abokin ciniki wanda zai danganta zuwa DLL, ko kawai gina / haɗin zuwa ɗakin ɗakin karatu. Yayin da za a zabi zabi tsakanin hanyoyin da za a magance 'adireshin kai tsaye tare da matsala', dole ne ka yi la'akari da amfani da duniyar na ainihi:

Asali:

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

Magani 1:

--foo.h extern int arr []; --foo.c #include "foo.h" void main (int argc, char ** argv) {/ * Wannan workaround shine don win32 da cygwin; Kada ku "inganta" * / maras amfani int * parr = arr; bugawa ("% d \ n", parr [1]); }

Magani 2:

--foo.h / * Lura: An ƙaddamar da fitarwa ta atomatik (babu __declspec (dllexport)) * / #if (an saita (_WIN32) || an saita (__ CYGWIN__)) && \! (an saita (FOO_BUILD_DLL) || an tsara (FOO_STATIC )) #define FOO_IMPORT __declspec (dllimport) #else #define FOO_IMPORT #nayarwa na FOO_IMPORT int arr []; --foo.c #include "foo.h" ne kawai (intgg, char ** argv) {printf ("% d \ n", arr [1]); }

Hanya na huɗu don kauce wa wannan matsala ita ce sake sake rubutun ɗakunan karatunka don amfani da ƙirar aikin aiki maimakon ƙididdigar bayanai don masu canji masu laifi (misali set_foo () da get_foo () ayyuka masu shiga.

--wagewa-ta atomatik-fitarwa

Kada ka yi ƙoƙarin yin haɗin ma'anar "_symbol" zuwa "__impbalsymbol" don DATAimports daga DLLs.

Tsarin lokaci-wanda zai iya jinkiri

Idan lambarka ta ƙunshi maganganun da aka bayyana a cikin ɓangaren mai-shigarwa -dabi-auto, wato, DATAimports daga DLL tare da biya ba zero, wannan canji zai ƙirƙiri wani shunnin 'sauye-tafiyen lokacin gudu' wanda za'a iya amfani da shi don tafiyar da lokaci don daidaita nassoshi zuwa irin wannan bayanan a lambar abokin ku.

- wanda za a iya saukewa-dan lokaci-lokaci

Kada a ƙirƙirar ƙaurawar da ba a yi ba don ba da zamewa ba DATA ta shigo daga DLLs. Wannan shi ne tsoho.

--wable-karin-pe-debug

Nuna ƙarin bayanan buɗaɗɗen da aka shafi alamar ta atomatik alamace alama.

- jeri-alignment

Shirya sashin jeri. Sassan a cikin ƙwaƙwalwar ajiya zasu fara ne a duk adireshin da suke da nau'i na wannan lambar. Defaults zuwa 0x1000.

--stack ajiye

--stack ajiye , aikata

Saka adadin ƙwaƙwalwar ajiya don ajiyewa (kuma ba za a yi ba) don a yi amfani dashi a matsayin tari don wannan shirin. A tsoho ne 2Mb ajiye, 4K aikata.

--subsystem wanda

--subsystem wanda : manyan

--subsystem wanda : manyan . ƙananan

Ya ƙayyade tsarin da abin da shirin ku zai yi. Sharuɗɗan ka'idojin da suke "ƙirar", "windows", "na'ura mai kwakwalwa", da "posix". Kila za ka iya saita sashin tsarin tsarin ta hanyar zaɓi.

Muhimmin: Yi amfani da umurnin mutum ( % mutum ) don ganin yadda aka yi amfani da umarnin akan kwamfutarka.