NAME ld - Uporaba LD, GNU linker POVZETEK ld opcije objfile … OPIS ld združuje številne objekte in arhivske datoteke, preslika njihove podatke in povezuje referenčne simbole. Ponavadi je zadnji korak pri sestavljanju programald. ld sprejema jezikovne datoteke Linker Command napisane v nadrejeni zbirki AT & T's Link Editor Command Syntax, da zagotovi izrecen in popoln nadzor nad povezovalnim procesom. Ta manska stran ne opisuje ukaznega jezika; glejld vnos v "info" ali priročnik ld: GNU linker, za vse podrobnosti o ukaznem jeziku in o drugih vidikih linkerja GNU. Ta različicald uporablja splošne knjižnice BFD za delovanje na objektnih datotekah. To dovoljujeld za branje, združevanje in pisanje predmetnih datotek v različnih oblikah --- na primer, COFF ali »a.out«. Različne oblike so lahko povezane tako, da ustvarijo vse razpoložljive vrste objektne datoteke. Poleg fleksibilnosti je linker GNU bolj koristen kot drugi povezovalci pri zagotavljanju diagnostičnih informacij. Mnogi povezovalci zapustijo izvršitev takoj, ko naletijo na napako; ko bo mogoče,ld nadaljuje z izvajanjem, kar vam omogoča, da prepoznate druge napake (ali v nekaterih primerih dobite izhodno datoteko kljub napaki). GNU linkerld je namenjen kritju širokega spektra situacij in biti čim bolj združljiv z drugimi povezovalci. Kot rezultat, imate veliko možnosti za nadzor svojega vedenja. OPCIJE Povezovalec podpira številne možnosti ukazne vrstice, vendar se v praksi le malo uporablja v določenem kontekstu. Na primer, pogosta uporabald je povezati standardne Unixove datoteke s predmeti na standardni, podprti Unix sistem. V takem sistemu lahko povežete datoteko »hello.o«: ld-o /lib/crt0.o hello.o -lcTo poveld ustvariti datoteko, ki se imenuje izhod kot rezultat povezovanja datoteke "/lib/crt0.o" s "hello.o" in knjižnico "libc.a", ki bo prišla iz standardnih imenskih iskalnikov. (Glej razpravo o-l spodnja možnost.) Nekatere možnosti ukazne vrsticeld se lahko določi na kateri koli točki v ukazni vrstici. Vendar pa možnosti, ki se nanašajo na datoteke, kot so-l ali-T, povzroči branje datoteke v točki, na kateri se v ukazni vrstici prikaže možnost, glede na datoteke objektov in druge možnosti datoteke. Ponavljajoče se možnosti za neuporabo datoteke z drugačnim argumentom ne bodo imele nobenega nadaljnjega učinka ali preglasijo predhodnih pojavov (tistih, ki so na levi strani v ukazni vrstici) te možnosti. Možnosti, ki so lahko smiselno določene več kot enkrat, so navedene v spodnjih opise. Nepreklicni argumenti so objektne datoteke ali arhivi, ki jih je treba povezati skupaj. Lahko sledijo, pred ali se kombinirajo z možnostmi ukazne vrstice, razen, da argument o predmetni datoteki ne sme biti nameščen med možnostjo in njenim argumentom. Običajno se linker prikliče z vsaj eno datoteko predmeta, vendar lahko z drugimi določite druge oblike binarnih vhodnih datotek-l, -R, in ukazni jezik skripta. Če št binarne vhodne datoteke so določene, linker ne proizvaja nobenega izhoda in izdaja sporočiloNi vhodnih datotek. Če linker ne more prepoznati oblike datoteke s predmeti, bo domneval, da gre za linker skript. Skript, določen na ta način, poveča glavni povezovalni skript, ki se uporablja za povezavo (bodisi privzeti skriptni skript ali določen z uporabo-T). Ta funkcija dovoljuje linkerju povezavo z datoteko, ki je videti kot predmet ali arhiv, dejansko pa samo določi nekatere vrednosti simbola ali uporablja "INPUT" ali "GROUP" za nalaganje drugih predmetov. Upoštevajte, da določanje skripta na ta način zgolj poveča glavni linker skript; uporabi-T možnost zamenjati privzeti skriptni linker. Za opcije, katerih imena so enojna črka, morajo argumenti opcije slediti opcijski črki brez vmesnega presledka ali pa jih dati kot ločeni argumenti takoj po možnosti, ki jih potrebujejo. Za opcije, katerih imena so več črk, je lahko ena pomišljaja ali dve pred imenom opcije; na primer,-tracni simbol in- trak-simbol so enakovredne. Opomba - obstaja ena izjema od tega pravila. Možnosti z več črkami, ki se začnejo z majhnim ohlapnim znakom 'o', lahko pred tem izberejo samo dve pomišljaji. To zmanjša zmedo z-o možnost. Tako na primer-momagično nastavi ime izhodne datotekemagija medtem ko- zmešan nastavi NMAGIC zastavo na izhodu. Argumenti za opcije z več črkami morajo biti ločeni od imena opcije z enakim znanjem ali pa morajo biti podani kot ločeni argumenti takoj po možnosti, ki jih potrebujejo. Na primer,- trak-simbol foo in- trace-symbol = foo so enakovredne. Sprejete so edinstvene okrajšave imen veččlanskih možnosti. Opomba - če se linker posredno poskuša z gonilnikom prevajalnika (nprgcc), potem je treba vse možnosti povezovalca ukazne vrstice prednastaviti z-Wl, (ali karkoli je primerno za določen gonilnik prevajalnika), na primer: gcc -Wl, - zagonska skupina foo.o bar.o -Wl, - končna skupinaTo je pomembno, ker sicer lahko gonilnik prevajalnika tiho spusti možnosti povezovalca, kar ima za posledico slabo povezavo. Tukaj je tabela generičnih stikal ukazne vrstice, ki jih je sprejel GNU linker: -a ključna beseda Ta možnost je podprta za združljivost HP / UX. The ključna beseda argument mora biti eden od nizovarhiv, deljeno, aliprivzeto. -arhiv je funkcionalno enakovreden-Bastično, druga dva ključna besedila pa sta funkcionalno enakovredna-Bodynamic. Ta možnost se lahko uporablja večkrat. -A arhitektura - arhitektura = arhitektura V trenutni izdajild, je ta možnost uporabna le za družino arhitektur Intel 960. V temld konfiguracijo, arhitektura argument opredeljuje posebno arhitekturo v družini 960, ki omogoča nekatere zaščitne ukrepe in spremeni iskalno pot knjižnice arhiva. Prihodnja izdajald lahko podpirajo podobne funkcije za druge družine arhitekture. -b vhodni format --format = vhodni format ld se lahko konfigurira za podporo več kot ene vrste predmetne datoteke. Če tvojld je nastavljen na ta način, lahko uporabite-b možnost določiti binarni format za datoteke vhodnih objektov, ki sledijo tej možnosti v ukazni vrstici. Četudild je konfiguriran tako, da podpira alternativne oblike objektov, ki jih običajno ne potrebujeteld je treba konfigurirati tako, da pričakujejo kot privzeti vhodni format najbolj običajen format na vsakem računalniku. vhodni format je besedilni niz, ime določenega formata, ki ga podpirajo knjižnice BFD. (Seznam razpoložljivih binarnih formatov lahko izberete zobjdump -i.) To možnost lahko uporabite, če povezujete datoteke z nenavadnim binarnim formatom. Uporabite lahko tudi-b da izrecno preklopite formate (pri povezovanju objektnih datotek različnih formatov), tako da vključite-b vhodni format pred vsako skupino predmetnih datotek v določeni obliki. Privzeta oblika je vzeta iz spremenljivke okolja "GNUTARGET". Vhodni format lahko določite tudi iz skripte z ukazom "TARGET"; -c MRI-ukazna datoteka --mri-script = MRI-ukazna datoteka Za združljivost s povezovalci, ki jih proizvaja MRI,ld sprejema skriptne datoteke, napisane v nadomestnem, omejenem ukaznem jeziku, opisanem v razdelku Združljivi skriptni datoteki MRI v dokumentaciji GNU ld. Vnesite MRI skriptne datoteke z možnostjo-c; uporabi-T možnost za zagon povezav skriptov, napisanih v splošnem namenuld skriptni jezik. Če MRI-cmdfil ne obstaja,ldga išče v imeniku, ki ga določi katerikoli-L opcije. -d -dc -dp Te tri možnosti so enakovredne; podpirajo več oblik za združljivost z drugimi povezovalci. Dodeljujejo prostor skupnim simbolom, tudi če je določena premična izhodna datoteka (z-r). Enak učinek ima ukaz skripta "FORCE_COMMON_ALLOCATION". -e vstop - vsebina = vstop Uporaba vstop kot izrecen simbol za začetek izvajanja vašega programa, namesto privzete vstopne točke. Če ni nobenega simbola vstop , bo linker poskusil razčleniti vstop kot številko in jo uporabite kot naslov vnosa (številka se bo razlagala v bazi 10, lahko uporabite vodilni0x za osnovo 16 ali vodilno0 za osnovo 8). -E - izvoz-dinamična Pri ustvarjanju dinamično povezane izvedljive datoteke dodajte vse simbole dinamični tabeli simbolov. Dinamična simbolna tabela je nabor simbolov, ki so vidni med dinamičnimi predmeti v času izvajanja. Če ne uporabljate te možnosti, bo dinamična tabela simbolov običajno vsebovala le tiste simbole, na katere se sklicuje določen dinamični objekt, naveden v povezavi. Če uporabljate "dlopen" za nalaganje dinamičnega predmeta, ki se mora nanašati na simbole, ki jih definira program, in ne na nekatere druge dinamične predmete, boste verjetno morali uporabiti to možnost, ko povezujete sam program. Skript različice lahko uporabite tudi za nadzor, katere simbole je treba dodati v tabelo dinamičnih simbolov, če jo podpira izhodni format. Oglejte si opis- verzija-skripta v @ ref {VERSION}. -EB Povežite velike-endijske objekte. To vpliva na privzeti izhodni format. -EL Povežite malo-endijske predmete. To vpliva na privzeti izhodni format. -f - pomožno ime Pri ustvarjanju skupnega predmeta ELF nastavite notranje polje DT_AUXILIARY pod določenim imenom. To pove dinamičnemu povezovalniku, da se tabela simbolov skupnega predmeta uporabi kot pomožni filter v tabeli simbolov skupnega predmeta ime . Če pozneje povežete program proti tem filtrirnim objektom, bo ob zagonu programa dinamični linker videli polje DT_AUXILIARY. Če dinamični linker reši vse simbole iz objekta filtra, bo najprej preveril, ali je v skupnem objektu definicija ime . Če obstaja, bo namesto definicije v filtrirnem objektu uporabljen. Skupni predmet ime ne potrebujejo. Tako skupni predmet ime se lahko uporabijo za alternativno izvajanje določenih funkcij, morda za razhroščevanje ali za strojno specifično delovanje. To možnost lahko določite več kot enkrat. DT_AUXILIARY vnosi bodo ustvarjeni v vrstnem redu, v katerem se pojavijo v ukazni vrstici. -F ime --filter ime Pri ustvarjanju skupnega predmeta ELF nastavite notranje polje DT_FILTER pod določenim imenom. To pove dinamičnemu povezovalniku, da je treba tabelo simbolov skupnega predmeta, ki se ustvarja, uporabiti kot filter v tabeli simbolov skupnega predmeta ime . Če pozneje povežete program proti tem filtrirnim objektom, bo ob zagonu programa dinamični povezovalec prikazal polje DT_FILTER. Dinamični linker bo rešil simbole glede na tabelo simbolov filtra kot običajno, vendar se bo dejansko povezala z definicijami, ki jih najdemo v skupnem objektu ime . Tako se lahko predmet filtriranja izbere podmnožica simbolov, ki jih zagotovi predmet ime . Nekateri starejši povezovalci so uporabili-F možnost v celotni zbirki orodij za določanje oblike zapisa objektne datoteke za datoteke vhodnih in izhodnih predmetov. Povezovalec GNU uporablja druge mehanizme za ta namen:-b, --format, --format možnosti, ukaz "TARGET" v povezovalnih skriptah in spremenljivka okolja "GNUTARGET". Povezovalec GNU bo prezrl-F možnost, če ne ustvarite skupnega ELF objekta. -fini ime Pri ustvarjanju izvršljivega ali skupnega predmeta ELF pokličite NAME, ko je izvršilni ali skupni predmet razložen, tako da nastavite DT_FINI na naslov funkcije. Povezovalec privzeto uporablja funkcijo "_fini" kot funkcijo klica. -g Prezrta. Zagotovljena združljivost z drugimi orodji. -G vrednost --gpsize = vrednost Nastavite največjo velikost predmetov, ki jih želite optimirati z registrom GP velikost . To je smiselno le za oblike datotek objektov, kot je MIPS ECOFF, ki podpira postavljanje velikih in majhnih predmetov na različne dele. To se prezre za druge oblike zapisov objektov. -H ime -soname = ime Pri ustvarjanju skupnega predmeta ELF nastavite notranje polje DT_SONAME pod določenim imenom. Ko je izvedljiva datoteka povezana s skupnim objektom, ki ima polje DT_SONAME, potem ko se izvrši izvršitveni program, bo dinamični linker poskušal naložiti skupni predmet, ki ga je določil polje DT_SONAME, namesto da uporabite ime datoteke, ki je dodeljeno linkerju. -jaz Izvedite inkrementalno povezavo (enako kot možnost-r). -v ime Pri ustvarjanju izvedljivega ali skupnega predmeta ELF pokličite NAME, ko je naložen izvršilni ali skupni predmet, tako da nastavite DT_INIT na naslov funkcije. Povezovalec privzeto uporablja funkcijo »_init« kot funkcijo klica. -l arhiv - knjižnica = arhiv Dodaj arhivsko datoteko arhiv na seznam datotek za povezavo. Ta možnost se lahko uporablja večkrat.ld bo poiskal svoj seznam poti za dogodke "libarchive.a" za vsakega arhiv določena. V sistemih, ki podpirajo deljene knjižnice,ld lahko iščejo knjižnice z razširitvami, ki niso ".a". Natančneje, na sistemih ELF in SunOS,ld bo poiskal imenik za knjižnico z razširitvijo ».so«, preden jo iščete z razširitvijo ».a«. Konvencija razširitev ".so" označuje skupno knjižnico. Povezovalec bo poiskal arhiv le enkrat, na mestu, kjer je naveden v ukazni vrstici. Če arhiv definira simbol, ki v določenem objektu ni bil definiran, ki se je pojavil pred arhivom v ukazni vrstici, bo linker vključil ustrezne datoteke iz arhiva. Vendar pa nedefinirani simbol v objektu, ki se bo pojavil kasneje v ukazni vrstici, ne bo povzročil, da bi povezovalec znova iskal arhiv. Oglejte si-( možnost za način, s katerim se linker večkrat sklicuje na arhive iskanja. Isti arhiv lahko večkrat navedete v ukazni vrstici. Ta vrsta arhivskega iskanja je standardna za linkers Unix. Vendar, če uporabljateld onAIX, upoštevajte, da se razlikuje od obnašanja povezave AIX. -L searchdir --library-path = searchdir Dodaj pot searchdir na seznam poti, ki jihld išče arhivske knjižnice inld kontrolne skripte. To možnost lahko uporabite večkrat. Imeniki se iščejo v vrstnem redu, v katerem so navedene v ukazni vrstici. Imeniki, ki so podani v ukazni vrstici, se iščejo pred privzetimi imeniki. Vse-L možnosti veljajo za vse-l možnosti, ne glede na vrstni red, v katerem so prikazane možnosti. Če searchdir se začne z "=", nato pa "=" nadomesti z sysroot predpono , določena pot, ko je konfiguriran linker. Privzeti niz iskanih poti (ne da bi bili podani z-L) je odvisno od načina emulacijeld uporablja in v nekaterih primerih tudi o tem, kako je bil konfiguriran. Pot lahko prav tako določite v skriptni povezavi z ukazom "SEARCH_DIR". Imeniki, navedeni na ta način, se iščejo v trenutku, ko se v ukazni vrstici prikaže skriptni linker. -m emulacija Emulirajte emulacija linker. Na voljo so lahko emulacije z-verbose ali-Vopcije. Če je-m možnost ni uporabljena, emulacija je vzeta iz spremenljivke okolja "LDEMULATION", če je to določeno. V nasprotnem primeru je privzeta emulacija odvisna od tega, kako je bil konfiguriran linker. -M -print-zemljevid Natisnite mapo povezav na standardni izhod. Mapa povezave vsebuje informacije o povezavi, vključno z naslednjim: * Kjer se objektne datoteke in simboli preslikajo v pomnilnik. * Kako so dodeljeni skupni simboli. * Vsi člani arhiva, vključeni v povezavo, z navedbo simbola, zaradi katerega je bil vložen arhivski član. -n - Nmagija Izklopite poravnavo strani in označite izhod kot "NMAGIC", če je mogoče. -N - zmešan Nastavite odseke besedila in podatkov za branje in pisanje. Prav tako ne poravnajte podatkovnega segmenta na strani in onemogočite povezovanje proti knjižnicam v skupni rabi. Če izhodni format podpira magične številke tipa Unix, označite izhod kot "OMAGIC". - ne-omagična Ta možnost negira večino učinkov-N možnost. Oddelek za besedilo nastavi samo za branje in prisili segment podatkov v poravnavo strani. Opomba - ta možnost ne omogoča povezave s knjižnicami v skupni rabi. Uporaba-Bodynamic za to. -o izhod --output = izhod Uporaba izhod kot ime za program, ki ga proizvajald; če ta možnost ni podana, ime a.out se privzeto uporablja. Ukaz skripta "OUTPUT" lahko tudi navede ime izhodne datoteke. -O ravni Če ravni je numerična vrednost večja od ničld optimizira izhod. To lahko traja precej daljše in zato je verjetno le omogočeno le za končno binarno. -q - emit-relocs Pustite odseke in vsebino preselitve v popolnoma povezane izvršilne liste. Te informacije so potrebne za analizo in orodja za objavo povezav, da bi lahko izvedli pravilne spremembe izvedljivih datotek. To ima za posledico večje izvedljive datoteke. Ta možnost je trenutno podprta samo na platformah ELF. -r - previdno Ustvari relocatable output --- i.e., ustvari izhodno datoteko, ki lahko služi kot vhodld. To se pogosto imenuje delno povezovanje . Kot neželeni učinek, v okoljih, ki podpirajo standardne magične številke Unixa, ta možnost tudi nastavi magično številko izhodne datoteke na »OMAGIC«. Če ta možnost ni podana, se generira absolutna datoteka. Pri povezovanju programov C + + to možnost Nebom reševanje sklicev na konstruktorje; za to, uporabite-Ur. Ko vhodna datoteka nima enake oblike kot izhodna datoteka, je delna povezava podprta le, če ta vhodna datoteka ne vsebuje selitev. Različne izhodne oblike imajo lahko dodatne omejitve; na primer nekatere oblike zapisa "a.out" ne podpirajo delne povezave z vhodnimi datotekami v drugih oblikah. Ta možnost deluje enako kot-jaz. -R Ime datoteke - samo-simboli = Ime datoteke Preberite imena simbolov in njihove naslove iz Ime datoteke , vendar ga ne preselite ali vključite v izhod. To omogoča, da se vaša izhodna datoteka simbolično nanaša na absolutne lokacije pomnilnika, določene v drugih programih. To možnost lahko uporabite več kot enkrat. Za združljivost z drugimi linkerji ELF, če-R možnost spremlja ime imenika in ne ime datoteke, se obravnava kot- Prt možnost. -s - vse ostalo Iz izhodne datoteke izpustite vse podatke o simbolu. -S --strip-debug Iz izhodne datoteke ne izpustite informacij o simbolu za razhroščevalce (vendar ne vseh simbolov). -t - trace Natisnite imena vhodnih datotek kotld jih obdeluje. -T scriptfile --script = scriptfile Uporaba scriptfile kot povezovalni skript. Skript se nadomestildprivzeti linker skript (ne pa dodajanje), tako da commandfile mora navesti vse, kar je potrebno za opis izhodne datoteke. Če scriptfile v trenutnem imeniku ne obstaja, »ld« jo išče v imeniku, ki ga določi katerikoli prejšnji-L opcije. Večkraten-T možnosti se kopičijo. -u simbol - navadno = simbol Force simbol da se v izhodni datoteki vnese kot nedefiniran simbol. To lahko na primer sproži povezavo dodatnih modulov s standardnimi knjižnicami.-u se lahko ponovi z drugačnimi argumenti argumentov za vnos dodatnih nedefiniranih simbolov. Ta možnost je enaka ukazu "EXTERN" linker script. -Ur Za vse razen programov C + + je ta možnost enaka-r: generira preselljiv izhod --- i.e., izhodno datoteko, ki lahko služi kot vhodld. Pri povezovanju programov C + +,-Ur ne reševanje sklicev na konstruktorje, za razliko od-r. Ne uporablja se za uporabo-Ur na datoteke, s katerimi so bile povezane-Ur; ko je zgrajena tabela konstruktorja, ni mogoče dodati. Uporaba-Ur samo za zadnjo delno povezavo, in-r za druge. - Unique = ODDELEK Ustvari ločen izhodni del za vsako ujemanje sekcij ODDELEK , ali če je izbirni nadomestni znak ODDELEK argument ni na voljo za vsak oddelek za vpis v sirote. Del sirot je eden, ki ni posebej omenjen v povezovalnem skriptu. To možnost lahko večkrat uporabite v ukazni vrstici; Preprečuje normalno združevanje vhodnih odsekov z istim imenom, prevladujoče dodelitve izhodnega odseka v povezovalnem skriptu. -v - različica -V Prikaži številko različice zald. The-V Možnost vsebuje tudi podprte emulacije. -x -discard-vse Izbrišite vse lokalne simbole. -X - lokalno prebivalstvo Izbrišite vse začasne lokalne simbole. Za večino tarč so to vsi lokalni simboli, katerih imena se začnejoL. -y simbol - trace-symbol = simbol Natisnite ime vsake povezane datoteke, v kateri simbol se prikaže. To možnost lahko dobite večkrat. Na mnogih sistemih je treba pripraviti podčrtaj. Ta možnost je uporabna, če imate v svoji povezavi nedefiniran simbol, vendar ne veste, od kod prihaja referenca. -Y pot Dodaj pot na privzeto pot do knjižnice. Ta možnost obstaja za združljivost s Solarisom. -z ključna beseda Prepoznane ključne besede so "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "now", "origin", "combreloc", "nocombreloc" in "nocopyreloc ". Druge ključne besede se ne upoštevajo za združljivost s Solarisom. "initfirst" označuje predmet, ki ga je najprej treba inicializirati med izvajanjem pred drugimi predmeti."interpose" označuje predmet, ki ga njegova tabela simbolov vnese pred vsemi simboli, temveč primarno izvedljivo. "loadfltr" označuje objekt, ki ga je treba obrav navati pri obdelavi njegovih filateljev ob zagonu. "nodefaultlib" označuje predmet, ki ga bo zanemarilo iskanje odvisnosti tega predmeta vse privzete poti za iskanje v knjižnici. "nodelete" označuje, da se objekt ne sme raztovarjati med izvajanjem. "nodlopen" označuje predmet, ki ni na voljo za "dlopen". "nodump" označuje, da predmeta ni mogoče damping z "dldump". "zdaj" označuje predmet z vezavo ne-lažnega izvajanja. Oznake "izvor" lahko vsebujejo $ ORIGIN. "defs" onemogoča nedefinirane simbole. "muldefs" omogoča več definicij. "combreloc" združuje več segmentov in jih razvrsti, da omogoči dinamičen predpomnilni pohod. "nocombreloc" onemogoči združevanje več segmentov. "nocopyreloc" onemogoča izdelavo kopij. -( arhivi -) - startna skupina arhivi -end-skupina The arhivi bi moral biti seznam arhivskih datotek. Lahko so izrecna imena datotek ali-lopcije. Navedene arhive se večkrat iščejo, dokler ne ustvarijo novih nedefiniranih referenc. Običajno se arhivu išče samo enkrat v vrstnem redu, ki je naveden v ukazni vrstici. Če je simbol v tem arhivu potreben za razrešitev nedefiniranega simbola, na katerega se nanaša predmet v arhivu, ki se kasneje pojavi v ukazni vrstici, povezovalec ne bi mogel rešiti te reference. Z združevanjem arhivov se vse večkrat iščejo, dokler niso odpravljene vse morebitne reference. Uporaba te možnosti ima znatne stroške učinkovitosti. Najbolje je uporabiti le, če obstajajo neizogibna krožna sklicevanja med dvema ali več arhivi. --accept-unknown-input-arch --no-sprejme-neznano-vhod-lok Povežete povezovalcu, da sprejme vhodne datoteke, katerih arhitekture ni mogoče prepoznati. Predpostavka je, da uporabnik ve, kaj počne in namerno želi povezati v te neznane vhodne datoteke. To je bilo privzeto obnašanje povezovalca pred izdajo 2.14. Privzeto obnašanje od izdaje 2.14 naprej je zavrnitev takih vhodnih datotek, in tako--accept-unknown-input-arch Dodana je možnost, da obnovite staro vedenje. -dovolj ključna beseda Ta možnost se ne upošteva za združljivost s SunOS-om. -Bodynamic - Ja -call_shared Povezava z dinamičnimi knjižnicami. To je smiselno le na platformah, za katere so podprti skupne knjižnice. Ta možnost je običajno privzeta na takšnih platformah. Različne različice te možnosti so združljive z različnimi sistemi. To možnost lahko večkrat uporabite v ukazni vrstici: vpliva na iskanje v knjižnici-l možnosti, ki sledijo temu. - Skupina Nastavite "DF_1_GROUP" zastavo v vnosu "DT_FLAGS_1" v dinamičnem delu. To povzroči, da linker za runtime obravnava lookups v tem objektu, njegove odvisnosti pa se izvajajo samo znotraj skupine.--no-nedoločeno je implicitno. Ta možnost je pomembna samo na platformah ELF, ki podpirajo deljene knjižnice. -Bastično -Dn -non_shared -statično Ne povežite se proti deljenim knjižnicam. To je smiselno le na platformah, za katere so podprti skupne knjižnice. Različne različice te možnosti so združljive z različnimi sistemi. To možnost lahko večkrat uporabite v ukazni vrstici: vpliva na iskanje v knjižnici-l možnosti, ki sledijo temu. -Bimbolično Ko ustvarjate knjižnico v skupni rabi, vezate na globalne simbole z definicijo znotraj knjižnice v skupni rabi, če obstaja. Običajno je mogoče, da program, povezan z knjižnico v skupni rabi, preglasi definicijo znotraj knjižnice v skupni rabi. Ta možnost je pomembna le na ELFplatformah, ki podpirajo deljene knjižnice. - preverite dele - brez preverjanja Prosi povezovalca ne če želite preveriti, ali se prekrivajo, preverite naslove oddelkov, ko so bili dodeljeni. Običajno bo povezovalec izvedel ta pregled, in če najde prekrivanja, bo ustvaril ustrezna sporočila o napakah. Povezovalec ne ve, in naredi dodatke za dele v prekrivanju. Privzeto vedenje je mogoče obnoviti s stikalom ukazne vrstice- preverite dele. - cref Izhodite navzkrižno referenčno tabelo. Če se generira datoteka mape povezav, se v mapno datoteko natisne navzkrižna referenčna tabela. V nasprotnem primeru se natisne na standardni izhod. Oblika tabele je namerno preprosta, tako da jo je mogoče enostavno obdelati s skriptom, če je potrebno. Simboli so natisnjeni, razvrščeni po imenu. Za vsak simbol je podan seznam imen datotek. Če je simbol definiran, je prva navedena datoteka lokacija definicije. Preostale datoteke vsebujejo sklicevanja na simbol. --no-določi-pogosto Ta možnost zavira dodeljevanje naslovov skupnim simbolom. Enak učinek ima ukaz skripta "INHIBIT_COMMON_ALLOCATION". The--no-določi-pogosto možnost omogoča ločitev odločitve o dodelitvi naslovov skupnim simbolom od izbire vrste izhodne datoteke; v nasprotnem primeru nespremenljiva vrsta izpisa prisili dodeljevanje naslovov skupnim simbolom. Uporaba--no-določi-pogosto omogoča skupne simbole, na katere se sklicujemo iz knjižnice v skupni rabi, ki jih je treba dodeliti samo v glavnem programu. S tem se odpravi neizkoriščeni podvojeni prostor v deljeni knjižnici in preprečuje morebitna zmeda pri reševanju napačnega dvojnika, če obstaja veliko dinamičnih modulov s specializiranimi iskalnimi potmi za ločljivost simbola za izvajanje. --defsym simbol = izraz Ustvarite globalni simbol v izhodni datoteki, ki vsebuje absolutni naslov, ki ga podaja izraz . To možnost lahko uporabite tolikokrat, kot je potrebno za določitev več simbolov v ukazni vrstici. Podprta je omejena oblika aritmetike izraz v tem kontekstu: lahko dodate šestnajstiško konstanto ali ime obstoječega simbola ali uporabite »+« in »-«, da dodate ali odštejete heksadecimalne konstante ali simbole. Če potrebujete več izdelanih izrazov, razmislite o uporabi ukaznega jezika linkerja iz skripte. Opomba: med tem ne sme biti nobenega prostora simbol , znak enaka (``='') in izraz . --demangle = slog - ne-demangle Te možnosti nadzorujejo, ali naj razkrijejo imena simbolov v sporočilih o napakah in drugih izhodih. Ko je povezovalcu rečeno, da razkrije, poskuša predstaviti imena simbolov v berljivem načinu: trakovi vodijo podčrtaje, če jih uporablja format datoteke objektov, in pretvarja C ++ obrnjena imena simbolov v uporabniško berljiva imena. Različni prevajalniki imajo različne oblike manglinga. Izbirni argument za razkrivanje sloga lahko uporabite, da izberete ustrezen slog za prevajanje v vašem prevajalniku. Povezovalec bo privzeto razkazal, razen če spremenljivka okoljaCOLLECT_NO_DEMANGLE je nastavljen. Te možnosti se lahko uporabijo za preglasitev privzete nastavitve. - dinamični linker mapa Določite ime dinamičnega povezovalca. To je smiselno samo pri ustvarjanju dinamično povezanih izvedljivih ELF-jev. Privzeti dinamični linker je običajno pravilen; ne uporabljajte tega, če veste, kaj počnete. --embedded-relocs Ta možnost je smiselna samo, če povezujete vdelano PIC kodo MIPS, ki jo generira opcija -membedded-pic na prevajalko in sestavljavce GNU-ja. Vzrok povzroči, da linker ustvari tabelo, ki se lahko uporablja v času izvajanja, da preselijo vse podatke, ki so bili statično inicializirani na vrednosti kazalca. Za podrobnosti glejte kodo v testu / ld-empic. - smrtna opozorila Vsa opozorila obravnavajte kot napake. --force-exe-suffix Poskrbite, da ima izhodna datoteka dodatek .exe. Če uspešno zgrajena popolnoma povezana izhodna datoteka nima pripono ».exe« ali ».dll«, ta možnost prisili povezovalca, da kopira izhodno datoteko v isto ime s pripono ».exe«. Ta možnost je uporabna pri uporabi nestandardnih makrofilov Unixa na gostitelju operacijskega sistema Microsoft Windows, saj nekatere različice operacijskega sistema Windows ne bodo prikazale slike, razen če se ne konča s pripono ».exe«. --no-gc-odseki - gc-odseki Omogočite zbiranje smeti neuporabljenih vhodnih odsekov. Ne upošteva se ciljev, ki ne podpirajo te možnosti. Ta možnost ni združljiva z-r, niti ne bi smeli uporabljati z dinamično povezavo. Privzeto obnašanje (neuporabe te zbirke smeti) je mogoče obnoviti z določitvijo--no-gc-odseki v ukazni vrstici. - pomoč Natisnite povzetek možnosti ukazne vrstice na standardnem izhodu in izstopu. - pomoč za pomoč Natisnite povzetek vseh ciljnih specifičnih možnosti na standardnem izhodu in izhodu. -Zemljevid mapfile Natisnite mapo povezav v datoteko mapfile . Oglejte si opis-M možnost, zgoraj. - ne hranite v spominu ld običajno optimizira hitrost prenosa pomnilnika s pomikanjem tabel simbolov vhodnih datotek v pomnilnik. Ta možnost poveld namesto tega optimizirati za uporabo pomnilnika, tako da ponovite tabele simbolov, kot je potrebno. To je morda potrebno, čeld zmanjkuje pomnilnika in hkrati povezuje veliko izvršljivega. --no-nedoločeno -z defs Običajno pri ustvarjanju ne-simbolične knjižnice v skupni rabi so dovoljeni nedefinirani simboli, ki jih loči, da jih reši zagonski nalagalnik. Te možnosti onemogočajo nedefinirane simbole. - z veliko opredelitvijo -z muldefs Običajno, ko je simbol večkrat določen, bo linker poročal o usodni napaki. Te možnosti omogočajo več definicij in uporabljena bo prva definicija. - slabo-shlib-nedoločeno Dovoli nedefinirane simbole v skupnih objektih, tudi če je nastavljen -no-undefined. Neto rezultat bo, da bodo nedoločeni simboli v običajnih objektih še vedno sprožili napako, vendar bodo nedefinirani simboli v skupnih objektih prezrti. Izvedba no_undefined naredi predpostavko, da se bo povezovalnik izvajanja zagozdil na nedefinirane simbole. Vendar obstaja vsaj en sistem (BeOS), kjer so nedefinirani simboli v skupnih knjižnicah normalni, saj jih jedro prilagodi ob času nalaganja, da izbere, katera funkcija je najprimernejša za trenutno arhitekturo. I.E. dinamično izberite ustrezno funkcijo memset. Očitno je običajno, da knjižnice v skupni rabi HPPA imajo nedefinirane simbole. --no-nedoločena različica Običajno, ko ima simbol nedefinirano različico, jo bo povezovalec zanemaril. Ta možnost onemogoča simboli z nedefinirano različico, namesto tega pa se izda usodna napaka. - opozorilo-neusklajenost Običajnold bo dala napako, če poskusite povezati vhodne datoteke, ki se neusklajene iz nekega razloga, morda zato, ker so bile zbrane za različne procesorje ali za različne koncepte. Ta možnost poveld da mora tiho dovoliti take morebitne napake. To možnost uporabite samo previdno, v primerih, ko ste naredili nekaj posebnih ukrepov, ki zagotavljajo, da so napake povezovalca neprimerne. - ne-celota-arhiv Izklopite učinek- cela arhiva možnost za poznejše arhivske datoteke. - brezhibno-exec Ohranite izvedljivo izhodno datoteko, kadar je še vedno uporabna.Običajno linker ne bo proizvedel izhodne datoteke, če bi med procesom povezave naletel na napake; izhod, ne da bi napisal izhodno datoteko, ko izda kakršno koli napako. -nostdlib V imeniški vrstici izrecno določite samo knjižnice knjižnic. Knjižnični imeniki, ki so določeni v povezavah skriptov (vključno s skripti povezav, ki so podani v ukazni vrstici), se prezrejo. --format izhodni format ld se lahko konfigurira za podporo več kot ene vrste predmetne datoteke. Če tvojld je nastavljen na ta način, lahko uporabite--format možnost določiti binarni format za datoteko izhodnega objekta. Četudild je konfiguriran tako, da podpira alternativne oblike objektov, ki jih običajno ne potrebujeteld je treba konfigurirati tako, da kot privzeto izhodno obliko proizvedejo najbolj običajno obliko na vsakem računalniku. izhodni format je besedilni niz, ime določenega formata, ki ga podpirajo knjižnice BFD. (Seznam razpoložljivih binarnih formatov lahko izberete zobjdump -i.) Ukaz skripta "OUTPUT_FORMAT" lahko določi tudi izhodni format, vendar jo ta možnost preglasi. -magic Ta možnost se zanemari za združljivost z Linuxom. -Ki Ta možnost se zanemari za združljivost SVR4. -relax Možnost s strojno odvisnimi učinki. Ta možnost je podprta samo na nekaj ciljev. Na nekaterih platformah je-relax opcija izvaja globalne optimizacije, ki postanejo možne, ko se linker razreši obravnava v programu, kot so sprostitev naslovnih načinov in sintetiziranje novih navodil v datoteki izhodnega objekta. Na nekaterih platformah lahko ti svetovni optimizaciji povezanih časov onemogočajo simbolično odpravljanje izpraznjenega izvršnega programa. To velja za družino procesorjev Matsushita MN10200 in MN10300. Na platformah, kjer to ni podprto,-relax je sprejet, vendar je prezrt. --retain-symbols-file Ime datoteke Zadrži samo simboli, navedeni v datoteki Ime datoteke , ki zavrže vse ostale. Ime datoteke je preprosto ravna datoteka z enim simbolom na linijo. Ta možnost je še posebej uporabna v okoljih (kot je VxWorks), kjer se velika tabela simbolov nakopiči postopoma, s čimer se ohrani časovni pomnilnik. --retain-symbols-file ne ne zavrzi nedefinirane simbole ali simbole, potrebne za preselitve. Določite lahko samo--retain-symbols-file enkrat v ukazni vrstici. Preglasi-s in-S. - Prt dir Dodajte imenik v iskalno pot knjižnice izvajalnega časa. To se uporablja pri povezovanju ELFexecutable s predmeti v skupni rabi. Vse- Prt argumenti so združeni in se prenesejo v linker runtime, ki jih uporablja za iskanje skupnih predmetov v času izvajanja. The- Prt možnost se uporablja tudi pri iskanju skupnih predmetov, ki jih potrebujejo skupni objekti, ki so izrecno vključeni v povezavo; glej opis-rpath-link možnost. Če- Prt se ne uporablja pri povezavi izvedljivega ELF-ja, če je določena vsebina spremenljivke okolja "LD_RUN_PATH". The- Prt možnost se lahko uporablja tudi na SunOS. Privzeto je na SunOS-u linker od vseh naprav ustvaril popravek za iskanje med izvajanjem-L možnosti, ki so podane. Če- Prt Če uporabite možnost, se bo pot do izvajalske poti oblikovala izključno z uporabo- Prt možnosti, ignoriranje-Lopcije. To je lahko uporabno pri uporabi gcc, ki dodaja veliko-L možnosti, ki so lahko na datotečnih sistemih, nameščenih v NFS. Za združljivost z drugimi linkerji ELF, če-R možnost spremlja ime imenika in ne ime datoteke, se obravnava kot- Prt možnost. -rpath-link DIR Če uporabljate ELF ali SunOS, lahko ena knjižnica v skupni rabi zahteva drugo. To se zgodi, če povezava »ld -shared« vključuje deljeno knjižnico kot eno od vhodnih datotek. Ko povezovalec naleti na takšno odvisnost, ko delaš ne-deljeno, neprenosljivo povezavo, bo samodejno poskušal poiskati zahtevano knjižnico v skupni rabi in jo vključiti v povezavo, če ni izrecno vključena. V takem primeru je-rpath-link opcija določa prvi niz imenikov za iskanje. The-rpath-link Možnost lahko določi zaporedje imenika z določitvijo seznama imen, ločenih s črkami ali večkratnim prikazom. To možnost je treba uporabljati previdno, ker preglasi pot do iskanja, ki je bila morda težko zbrana v knjižnici v skupni rabi. V takem primeru je mogoče nenamerno uporabiti drugo pot za iskanje, kot bi to storil linker za runtime. Povezovalec uporablja naslednje iskalne poti za iskanje potrebnih knjižnic v skupni rabi. 1. Vsi imeniki, ki jih določi-rpath-link opcije. 2. Vsi imeniki, ki jih določi- Prt opcije. Razlika med- Prt in-rpath-link so imeniki, ki jih določi- Prt možnosti so vključene v izvedljivo in se uporabljajo v času izvajanja, medtem ko je-rpath-link možnost je učinkovita samo pri času povezave. Samo za avtohtonega povezovalca. 3. V sistemu ELF, če je- Prt in možnosti "rpath-link" niso bile uporabljene, poiščite vsebino spremenljivke okolja "LD_RUN_PATH". Samo za avtohtonega povezovalca. 4. Na SunOS, če- Prt možnost ni bila uporabljena, poiščite vse imenike, ki ste jih določili z uporabo-L opcije. 5. Za avtohtonega povezovalca vsebine spremenljivke okolja "LD_LIBRARY_PATH". 6. Pri domačem povezovalniku ELF se v imeniku »DT_RUNPATH« ali »DT_RPATH« knjižnice v skupni rabi iščejo skupne knjižnice, ki jih potrebuje.Vpisi "DT_RPATH" se ne upoštevajo, če vnesete "DT_RUNPATH" vnosi. 7. Privzeti imenik, navadno / lib in / usr / lib . 8. Za izvorni linker v sistemu ELF, če je datoteka /etc/ld.so.conf obstaja seznam imenikov v tej datoteki. Če zahtevane knjižnice v skupni rabi ni mogoče najti, bo linker izdal opozorilo in nadaljeval s povezavo. -elezijo -Božljivo Ustvarite knjižnico v skupni rabi. Trenutno je podprt samo na platformah ELF, XCOFF in SunOS. Na SunOSu bo linker samodejno ustvaril knjižnico v skupni rabi, če-e možnost ni uporabljena in v povezavi so nedefinirani simboli. -sort-common Ta možnost poveld da razvrstite skupne simbole glede na velikost, ko jih postavite v ustrezne izhodne dele. Najprej prikažite vse ene byte simbole, nato vse dva bajta, nato vse štiri bajta, nato pa vse drugo. To je, da preprečite vrzeli med simboli zaradi omejitev poravnave. --split-by-file velikost Podoben- posel-po-reloc vendar ustvari nov izhodni del za vsako vhodno datoteko, ko velikost je dosežena. velikost privzeto je velikost 1, če ni podana. - posnemanje po relociji šteje Tries ustvari dodatne dele v izhodni datoteki, tako da noben posamezni izhodni del v datoteki ne vsebuje več kot šteje preselitve. To je uporabno pri ustvarjanju velikih preselljivih datotek za prenos v določena jedra v realnem času s formatom datoteke predmeta COFF; saj COFFcannot predstavlja več kot 65535 selitev v enem odseku. Upoštevajte, da to ne bo delovalo z oblikami objektnih datotek, ki ne podpirajo poljubnih delov. Povezovalec ne razdeli posameznih vhodnih odsekov za prerazporeditev, zato, če en vhodni odsek vsebuje več kot šteje relokacije en izhodni odsek bo vseboval toliko premikov. šteje privzeto vrednost 32768. - stati Izračunajte in prikažite statistične podatke o delovanju linkerja, kot so čas izvajanja in uporaba pomnilnika. - tradicionalni format Za nekatere cilje, proizvodnjald je na nek način drugačen od proizvodnje nekaterih obstoječih linkerjev. To stikalo zahtevald namesto tega uporabite tradicionalni format. Na primer, na SunOS,ld združuje podvojene vnose v tabeli simbolnih nizov. To lahko zmanjša velikost izhodne datoteke s popolnimi informacijami o odpravljanju napak za več kot 30 odstotkov. Na žalost program SunOS "dbx" ne more prebrati nastalega programa ("gdb" nima težav). The- tradicionalni format stikalo poveld da ne kombiniramo podvojenih vnosov. -sekcijski zagon ime oddelka = org Poiščite razdelek v izhodni datoteki na absolutnem naslovu, ki ga podaja org . To možnost lahko uporabite tolikokrat, kot je potrebno za iskanje več razdelkov v ukazni vrstici. org mora biti eno šestnajstiško celo število; za združljivost z drugimi povezovalci lahko izpustite vodilni0x običajno povezana s heksadecimalnimi vrednostmi. Opomba: med tem ne sme biti nobenega prostora ime oddelka , znak enaka (``='') in org . -Tbss org -Tata org -Tekst org Uporaba org kot izhodni naslov za --- --- "bss", "data" ali "text" segment izhodne datoteke. org mora biti eno šestnajstiško celo število; za združljivost z drugimi povezovalci lahko izpustite vodilni0x običajno povezana s heksadecimalnimi vrednostmi. -dll-verbose -verbose Prikaži številko različice zald in seznam podprtih emulacij linkerjev. Prikazovanje, katere vhodne datoteke lahko in jih ni mogoče odpreti. Prikaz povezovalnega skripta, ki ga uporablja linker. --version-script = version-scriptfile Navedite ime skripta različice linkerja. To se navadno uporablja pri ustvarjanju knjižnic v skupni rabi, če želite podati dodatne informacije o heirarhiji različice za ustvarjeno knjižnico. Ta možnost je pomembna samo na platformah ELF, ki podpirajo deljene knjižnice. --warn-common Opozori, če je skupni simbol povezan z drugim skupnim simbolom ali z definicijo simbola. Povezovalci Unixa to omogočajo nekoliko nepravilno prakso, vendar povezovalci v nekaterih drugih operacijskih sistemih ne. Ta možnost vam omogoča iskanje morebitnih težav pri združevanju globalnih simbolov. Na žalost nekatere knjižnice C uporabljajo to prakso, zato boste morda prejeli nekaj opozoril o simbolih v knjižnicah in v svojih programih. Obstajajo tri vrste globalnih simbolov, ki jih tukaj ilustrirajo primeri C: int i = 1; Definicija, ki gre v razdelku inicializiranih podatkov v izhodni datoteki. extern int i; Nedefinirana referenca, ki ne dodeljuje prostora. Za neko spremenljivko mora obstajati definicija ali skupni simbol. int i; Skupni simbol. Če obstajajo samo (en ali več) skupnih simbolov za spremenljivko, gre v neinicializirano podatkovno polje izhodne datoteke. Povezovalec združuje več skupnih simbolov za isto spremenljivko v en sam simbol. Če so v različnih velikostih, izbere največjo velikost. Povezovalec spremeni skupni simbol v deklaracijo, če obstaja definicija iste spremenljivke. The--warn-common možnost lahko prikaže pet vrst opozoril. Vsako opozorilo je sestavljeno iz dveh vrstic: prvi opisuje simbol, s katerim se je pravkar srečal, in drugi opisuje prejšnji simbol, ki se srečuje z istim imenom. En ali oba simbola bo skupni simbol. 1. Obrnitev skupnega simbola v referenco, ker že obstaja definicija simbola. (): opozorilo: pogosto ""nadomeščen po definiciji (): opozorilo: definirano tukaj2. Obrnitev skupnega simbola v referenco, ker se pojavlja poznejša definicija simbola. To je enako kot prejšnji primer, le da se simboli srečujejo v drugačnem vrstnem redu. (): opozorilo: definicija `"prevladujoči skupni (): opozorilo: pogosto je tukaj3. Združevanje skupnega simbola s prejšnjim istim skupnim simbolom. (): opozorilo: večkrat pogosti' (): opozorilo: prejšnji skupni je tukaj4. Združevanje skupnega simbola s prejšnjim večjim skupnim simbolom. (): opozorilo: pogosto ""prevlada večja skupna (): opozorilo: tukaj je večje skupno5. Združite skupni simbol s prejšnjim manjšim skupnim simbolom. To je enako kot prejšnji primer, le da se simboli srečujejo v drugačnem vrstnem redu. (): opozorilo: pogosto ""prevladujoč manjši skupni (): opozorilo: tukaj je manjše skupno- opozorila-konstruktorji Opozori, če se uporabljajo kateri koli globalni konstruktorji. To je uporabno le za nekaj oblik zapisa objektnih datotek. Za formate, kot so COFF ali ELF, povezovalec ne more zaznati uporabe globalnih konstruktorjev. --warn-multiple-gp Opozori, če je v izhodni datoteki potrebno več vrednosti globalnega kazalca. To je smiselno le za nekatere procesorje, kot je Alpha. Natančneje, nekateri procesorji v poseben oddelek postavljajo velike vrednosti konstant. Poseben register (globalni kazalec) kaže na sredino tega razdelka, tako da se lahko konstanti učinkovito naložijo prek načina relativnega naslavljanja osnovnega registra. Ker je zamik v relativnem načinu osnovnega registra fiksiran in razmeroma majhen (npr. 16 bitov), to omejuje največjo velikost konstantnega bazena. Tako je v velikih programih pogosto potrebno uporabiti več vrednosti globalnih kazalcev, da bi lahko obravnavali vse možne konstante. Ta možnost povzroči, da se opozorilo izda kadarkoli pride do tega primera. - opozorilo enkrat Samo enkrat opozarjamo na vsak nedefiniran simbol, namesto enkrat na modul, ki se nanaša nanjo. - poravnavanje opozorila Opozori, če je naslov izhodnega odseka spremenjen zaradi poravnave. Običajno bo poravnava nastavljena z vhodnim odsekom. Naslov bo spremenjen le, če ni izrecno naveden; to pomeni, če ukaz "SECTIONS" ne določa začetnega naslova za razdelek. - cela arhiva Za vsak arhiv, naveden v ukazni vrstici po- cela arhiva možnost, vključite vsako datoteko v arhivu v povezavo, namesto da iščete arhiv za zahtevane datoteke objektov. To se navadno uporablja za pretvorbo arhivske datoteke v knjižnico v skupni rabi, s čimer se vsak predmet vključi v knjižnico, ki se prikaže v skupni rabi. To možnost lahko uporabite več kot enkrat. Dve opombi pri uporabi te možnosti iz gcc: Najprej gcc ne ve za to možnost, zato jo morate uporabiti-Wl, -pravo-arhiv. Drugič, ne pozabite uporabiti-Wl, -no-cel arhivpo vašem seznamu arhivov, ker bo gcc v vašo povezavo dodal svoj seznam arhivov in morda ne želite, da ta zastava vpliva tudi na te. - zaviti simbol Uporabite funkcijo ovoja za simbol . Vsako nedoločeno sklicevanje na simbol bo razrešeno na "__ wrap_symbol". Vsako nedoločeno sklicevanje na "__real_symbol" bo razrešeno na simbol . To lahko uporabite za zagotovitev ovitka za sistemsko funkcijo. Funkcijo ovoja je treba imenovati "__wrap_symbol". Če želi poklicati sistemsko funkcijo, mora poklicati »__ real_symbol«. Tukaj je trivialen primer: prazen * __wrap_malloc (int c) {printf ("klic z imenom% ld n", c); vrnitev __real_malloc (c); }Če povezujete drugo kodo s to datoteko- Wrap malloc, potem bodo vsi klici na "malloc" namesto tega klicali funkcijo "__wrap_malloc". Klic na "__real_malloc" v "__wrap_malloc" bo poklical dejansko funkcijo "malloc". Morda boste želeli zagotoviti funkcijo "__real_malloc", tako da povezave brez- zaviti možnost bo uspela. Če to naredite, ne bi smeli dati definicije »__ real_malloc« v isti datoteki kot »__wrap_malloc«; če to storite, lahko umaknjenec razreši klic, preden linker lahko obrne na "malloc". - novosti-novosti --dizable-new-dtags Ta linker lahko v ELF ustvari nove dinamične oznake. Toda starejši sistemi ELF jih morda ne bodo razumeli. Če navedete- novosti-novosti, bodo dinamične oznake ustvarjene po potrebi. Če navedete--dizable-new-dtags, ne bodo ustvarjene nove dinamične oznake. Privzeto nove dinamične oznake niso ustvarjene. Upoštevajte, da so te možnosti na voljo samo za sisteme ELF. Povezovalec i386 PE podpira-elezijo možnost, ki povzroči, da je izhod dinamično povezana knjižnica (DLL) namesto običajnega izvršljivega. Ko uporabite to možnost, morate ime »* .dll« navesti. Poleg tega linker v celoti podpira standardne datoteke "* .def", ki jih je mogoče določiti v ukazni vrstici linker, kot je predmetna datoteka (dejansko bi morala biti pred arhivi, iz katerih izvozi simbole, da bi se prepričali, tako kot običajna datoteka s predmeti). Poleg možnosti, ki so skupne vsem ciljem, povezava i386 PE podpira dodatne možnosti ukazne vrstice, ki so specifične za cilj i386 PE. Možnosti, ki sprejmejo vrednosti, so lahko ločene od njihovih vrednosti s presledkom ali enako znako. --add-stdcall-vzdevek Če je podano, so simboli s stdcall končnico (@ nn ) bodo izvožene kot-in tudi z dodatkom končnice. - osnovna datoteka mapa Uporaba mapa kot ime datoteke, v kateri želite shraniti osnovne naslove vseh selitev, potrebnih za ustvarjanje DLL-jev dlltool . - dll Ustvarite DLL namesto rednega izvršljivega. Uporabite lahko tudi-elezijo ali določite "LIBRARY" v dani ".def" datoteki. --enable-stdcall-fixup --disable-stdcall-fixup Če povezava najde simbol, ki ga ne more rešiti, bo poskušal narediti `` fuzzy linking '', tako da išče drug definiran simbol, ki se razlikuje le v obliki imena simbola (cdecl vs stdcall) in bo odpravil ta simbol s povezovanjem na tekmo. Na primer, nedefiniran simbol "_foo" je lahko povezan s funkcijo "_foo @ 12" ali pa je lahko z nedefiniranim simbolom "_bar @ 16" povezana funkcija "_bar". Ko povezovalec to naredi, natisne opozorilo, ker običajno ni bilo mogoče povezati, včasih pa je treba to funkcijo uporabiti za uvoz knjižnic, ustvarjenih iz DLL tretjih oseb. Če navedete--enable-stdcall-fixup, je ta funkcija v celoti omogočena in opozorila niso natisnjena. Če navedete--disable-stdcall-fixup, je ta funkcija onemogočena in takšne neusklajenosti se štejejo za napake. - izvoz-vsi simboli Če je podan, bodo DLL izvozili vse globalne simbole v objektih, uporabljenih za izdelavo DLL-ja. Upoštevajte, da je to privzeto, če drugače ne bi bilo nobenih izvoženih simbolov. Če so simboli izrecno izvoženi z datotekami DEF ali implicitno izvoženi prek atributov funkcij, privzeto ne bo izvoziti ničesar drugega, razen če je ta možnost dana. Upoštevajte, da simboli "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12" in "impure_ptr" ne bodo samodejno izvoženi. Tudi simboli, uvoženi iz drugih DLL-jev, se ne bodo ponovno izvoženi, niti simboli, ki določajo notranjo postavitev DLL, kot so tisti, ki se začnejo z "_head_" ali končajo z "_iname". Poleg tega se ne bodo izvozili nobeni simboli iz "libgcc", "libstd ++", "libmingw32" ali "crtX.o". Simboli, katerih imena se začnejo z "__rtti_" ali "__builtin_", ne bodo izvoženi, da bi pomagali pri DLL-jih C ++. Končno, obstaja obsežen seznam cygwin-zasebnih simbolov, ki se ne izvažajo (očitno je, da to velja pri izdelavi DLL-jev za cilje cygwin-a). Ti cygwin-izključeni so: "_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" "in" okolju ". - simboli izključitve simbol , simbol ,… Določi seznam simbolov, ki jih ne smemo samodejno izvoziti. Imena simbolov so lahko razmejene z vejicami ali dvopičjem. --exclude-libs lib , lib ,… Določa seznam arhivskih knjižnic, iz katerih simboli ne bi smeli biti samodejno izvoženi. Imena knjižnic se lahko razmejujejo z vejicami ali dvopičjem. Določanje "-exclude-libs ALL" izključuje simbole v vseh arhivskih knjižnicah iz samodejnega izvoza. Simboli, ki so izrecno navedeni v datoteki .def, se še vedno izvažajo, ne glede na to možnost. - poravnava datoteke Določite poravnavo datoteke. Odseki v datoteki se vedno začnejo s premiki datotek, ki so večkratnik te številke. Ta privzeta vrednost je 512. - presenečenje rezerva - presenečenje rezerva , zavezati Določite količino pomnilnika, ki ga želite rezervirati (in neobvezno storiti), ki bo uporabljen kot kup za ta program. Privzeto je rezervirana 1Mb, dodeljena je 4K. - podoba slike vrednost Uporaba vrednost kot osnovni naslov vašega programa ali dll. To je najmanjša lokacija pomnilnika, ki bo uporabljena, ko bo naložen vaš program ali dll. Da bi zmanjšali potrebo po preselitvi in izboljšanju učinkovitosti vaših DLL, bi morali imeti vsak svoj edinstven osnovni naslov in ne prekrivati drugih DLL-jev. Privzeta vrednost je 0x400000 za izvedljive datoteke in 0x10000000 za DLL. -kill-at Če je podano, so stdcall pripone (@ nn ) bodo pred izvozom odstranjeni iz simbolov. --major-slika-različica vrednost Nastavi glavno število "slikovne različice". Privzeto je 1. - major-os-različica vrednost Nastavi glavno število različice `` os ''. Privzeta vrednost je 4. --major-podsistem-različica vrednost Nastavi glavno število "podsistemske različice". Privzeta vrednost je 4. -minor-image-version vrednost Nastavi manjše število "slikovne različice". Privzeto je 0. - minor-os-različica vrednost Nastavi manjše število različice `` os ''. Privzeto je 0. -minor-podsistem-različica vrednost Nastavi manjše število "podsistemov". Privzeto je 0. - izhod-def mapa Povezovalec bo ustvaril datoteko mapa ki bo vseboval datoteko DEF, ki ustreza DLL, ki jo povzroči linker. Datoteko DEF (ki jo je treba imenovati ».def«) se lahko uporabi za ustvarjanje uvozne knjižnice z »dlltool« ali pa se lahko uporabi kot sklicevanje na samodejno ali implicitno izvožene simbole. -out-implib mapa Povezovalec bo ustvaril datoteko mapa ki vsebuje uvozni lib, ki ustreza DLL, ki ga povzroči linker. Ta uvozni lib (ki ga je treba imenovati »* .dll.a« ali »* .a« lahko uporabite za povezavo strank z ustvarjeno DLL, kar pomeni, da lahko preskočite ločen korak izdelave knjižnice uvoza »dlltool«. --enable-auto-image-base Samodejno izberi slikovno bazo za DLL, razen če je določena s pomočjo »-image-base« argumenta. Z uporabo razprševanja, ustvarjenega iz dllname, za ustvarjanje edinstvene podobe slik za vsako DLL, se izognejo trčenja v pomnilniku in premestitve, ki lahko zavlečejo izvajanje programa. --dizable-auto-image-base Ne ustvarite