VARDAS ld - LD naudojimas, GNU linkeris SANTRAUKA ld galimybės objfile … APIBŪDINIMAS ld sujungia daug objektų ir archyvų failus, perkelia jų duomenis ir susieja simbolių nuorodas. Paprastai paskutinis programos kūrimo etapas yra paleistild. ld priima "Linker Command Language" failus, parašytus AT & T "Link Editor" komandų kalbos sintaksėje, siekiant aiškiai ir visiškai kontroliuoti susiejimo procesą. Šiame puslapyje nėra aprašomos komandų kalbos; žrld įrašas "info" arba vadovas ld: GNU linker, išsami informacija apie komandų kalbą ir kitus "GNU linker" aspektus. Ši versijald naudoja bendrojo naudojimo BFD bibliotekas, kad veiktų objektų bylose. Tai leidžiald perskaityti, sujungti ir parašyti objektų failus įvairiuose formatuose, pvz., COFF arba "a.out". Skirtingi formatai gali būti susieti kartu, norint sukurti bet kokį turimą objekto failo tipą. Be lankstumo, GNU jungtys yra naudingesnės, palyginti su kitomis nuorodomis teikiant diagnostinę informaciją. Daugybė nuorodų atsisako vykdyti iš karto po klaidos; kai tik įmanomald tęsiasi, leidžianti nustatyti kitas klaidas (arba kai kuriais atvejais gauti išvesties failą, nepaisant klaidos). GNU linkerisld skirtas padengti įvairias situacijas ir būti kuo labiau suderintu su kitais linkeriais. Dėl to jūs turite daug pasirinkimų, kad galėtumėte kontroliuoti savo elgesį. GALIMYBĖS Linker palaiko daugybę komandinės eilutės parinkčių, tačiau realioje praktikoje keli iš jų yra naudojami bet kuriame konkrečiame kontekste. Pavyzdžiui, dažnas naudojimasld yra susieti standartizuotus Unix objektų failus standartinėje palaikomoje "Unix" sistemoje. Tokioje sistemoje susieti failą "hello.o": Aš darau /lib/crt0.o hello.o -lcTai pasakojald sukurti failą, pavadintą produkcija kaip rezultatas susiejant bylą "/lib/crt0.o" su "hello.o" ir biblioteka "libc.a", kuri ateis iš standartinių paieškos katalogų. (Žr-l toliau nurodyta parinktis.) Kai kurios komandinės eilutės parinktysld gali būti nurodyta bet kuriame komandinės eilutės taške. Tačiau galimybės, susijusios su failais, tokiais kaip-l arba-T, todėl failą reikia skaityti taške, kuria parinktis atsiranda komandinėje eilutėje, palyginti su objektų failais ir kitomis failų parinktimis. Keičiant ne failo parinktis su kitokiu argumentu nebus jokio papildomo efekto arba anuliuoti ankstesnius įvykius (tolesnius į kairę komandinės eilutės). Parinktys, kurios gali būti reikšmingai nurodytos daugiau nei vieną kartą, nurodytos toliau pateiktuose aprašymuose. Neparametruoti argumentai yra objektiniai failai ar archyvai, kurie turi būti susieti kartu. Jie gali sekti, sekti arba sumaišyti su komandinės eilutės parinktimis, išskyrus tai, kad objekto failo argumentas negali būti tarp pasirinkimo ir jo argumentų. Paprastai linkeris yra nukreipiamas bent vienu objekto failu, bet galite nurodyti kitas binarinių įvesties failų formas naudodami-l, -R, ir scenarijaus komandų kalba. Jei ne Visais atvejais yra nurodyti dvejetainiai įvesties failai, linkeris nesukuria jokios išvesties ir išleidžia pranešimąNėra įvesties failų. Jei linkeris negali atpažinti objekto failo formato, jis darys prielaidą, kad tai yra nuorodų scenarijus. Tokiu būdu nurodytas scenarijus sustiprina pagrindinį linkerio scenarijų, kuris naudojamas nuorodai (numatytojo susirašinėjimo scenarijų arba nurodytam naudojant-T) Ši funkcija leidžia linkeriui susieti failą, kuris, atrodo, yra objektas ar archyvas, iš tikrųjų tik apibrėžia kai kurias simbolių vertes arba naudoja "INPUT" arba "GROUP", kad įkeltų kitus objektus. Atkreipkite dėmesį, kad tokiu būdu nurodant scenarijų tik padidinamas pagrindinis linkerio scenarijus; naudoti-T galimybė visiškai pakeisti numatytąjį linkerio scenarijų. Parinktyse, kurių pavadinimai yra viena raide, parinkčių argumentai turi būti arba po pasirinkimo raidės, nepraleidžiant tarpo, arba būti pateikiami kaip atskiri argumentai iš karto po to, kai jiems reikalinga parinktis. Jei parinktys, kurių pavadinimai yra kelis raides, prieš pasirinkimo pavadinimą gali būti prieš vieną ar du brūkšnelius; pavyzdžiui,traukos simbolis ir- traukos simbolis yra lygiavertės. Pastaba: šioje taisyklėje yra viena išimtis. Keli raidiniai parinktys, prasidedantys mažosiomis raidėmis "o", gali būti iš anksto užfiksuoti tik dviem brūkšneliais. Tai yra, siekiant sumažinti painiavą-o pasirinkimas. Pavyzdžiui-motorinis nustato išvesties failo pavadinimą įmagija kadangi- magiškas nustato NMAGIC vėliavėlę ant išvesties. Argumentai dėl kelių raidžių parinkčių turi būti atskirti nuo varianto pavadinimo lygiomis raidėmis arba būti pateikiami kaip atskiri argumentai iškart po to, kai jie reikalingi. Pavyzdžiui,- trajektorijos simbolis foo ir--trace-simbolis = foo yra lygiavertės. Priimamos unikalios kelių raidžių variantų pavadinimų santrumpos. Pastaba: jei nuorodą sukelia netiesiogiai, per kompiliatoriaus tvarkyklę (pvzgcc), visi komandinės eilutės parinkčių elementai turėtų būti pridedami-Wl (ar kokia yra konkretaus kompiliatoriaus tvarkyklė), pavyzdžiui: gcc -Wl, - startgroup foo.o bar.o -Wl, - endgroupTai yra svarbu, nes kitaip kompiliatoriaus tvarkyklės programa gali tyliai nuleisti nuorodų parinktis, todėl bloga nuoroda. Štai lentelė bendrų komandų eilutės jungiklių, priimtų GNU linkerio: -a raktinis žodis Ši parinktis palaikoma HP / UX suderinamumui. The raktinis žodis argumentas turi būti viena iš eilučiųarchyvuoti, bendrai naudojamas, arbanumatytas. -archyvuoti yra funkcionaliai lygiavertis-Bstatic, o kiti du raktažodžiai yra funkcionaliai lygiaverčiai-Bdynamic. Ši parinktis gali būti naudojama bet kuriuo metu. -A architektūra --architecture = architektūra Dabartinėje išleidžiantld, ši parinktis naudinga tik "Intel 960" architektūros šeimai. Taild konfigūracija, architektūra argumentas nurodo konkrečią 960 šeimos architektūrą, leidžiančią tam tikras apsaugos priemones ir keisti archyvo ir bibliotekos paieškos kelią. Ateities išleidimaild gali remti panašias funkcijas kitų architektūros šeimų. -b įvesties formatas --format = įvesties formatas ld gali būti sukonfigūruotas palaikyti daugiau nei vieną objekto failo tipą. Jei tavold yra sukonfigūruotas tokiu būdu, galite naudoti-b parinktis nurodyti dvejetainį formatą įvesties objektų rinkmenoms, kurios seka šią parinktį komandinėje eilutėje. Net tada, kaild yra sukonfigūruotas palaikyti alternatyvius objektų formatus, jums paprastai nereikia tai nurodyti, kaipld turėtų būti sukonfigūruotas kaip numatytasis įvesties formatas, labiausiai įprastas formatas kiekviename kompiuteryje. įvesties formatas yra tekstinė eilutė, tam tikro formato pavadinimas, kurį palaiko BFD bibliotekos. (Galite nurodyti turimus dvejetainius formatus suobjdump-i.) Galbūt norėsite naudoti šią parinktį, jei susiesite failus su neįprastais dvejetainiu formatu. Taip pat galite naudotis-b aiškiai perjungti formatus (susiejant skirtingų formatų objektų failus), įtraukdami-b įvesties formatas prieš kiekvieną objektų failų grupę tam tikrame formate. Numatytasis formatas paimamas iš aplinkos kintamojo "GNUTARGET". Jūs taip pat galite apibrėžti įvesties formatą iš scenarijaus, naudodami komandą "TARGET"; -c MRI-commandfile - mri-script = MRI-commandfile Dėl suderinamumo su MRI sukurtais linkeriais,ld priima scenarijų failus, parašytus pakaitine, ribotos komandos kalba, aprašytą skyriuje "MRI suderinamojo scenarijaus failai" GNU ld dokumentuose. Įveskite MR scenarijų rinkmenas su parinktimi-c; naudoti-T galimybė paleisti linkerio scenarijus, parašytus bendraild scenarijus kalba. Jei MRI-cmdfile neegzistuoja,ldieško to kataloguose, kuriuos nurodo bet kuris-L galimybės. -d -dc -dp Šie trys variantai yra lygiaverčiai; Daugybė formų yra palaikomos suderinamumui su kitais linkeriais. Jie priskiria erdvę bendriems simboliams, net jei yra nurodytas perkeliamas išvesties failas (su-r) Komandos scenarijus "FORCE_COMMON_ALLOCATION" turi tokį patį poveikį. -e įrašas - centre = įrašas Naudok įrašas kaip aiškų simbolį pradžioje vykdyti jūsų programą, o ne numatytąjį įėjimo tašką. Jei nėra simbolio, pavadinto įrašas , linkeris bandys analizuoti įrašas kaip numerį ir naudokite jį kaip įvesties adresą (numeris bus interpretuojamas bazine 10, galite naudoti vedantįjį0x bazei 16, arba pirmaujanti0 bazei 8). -E - Eksportas-dinamiškas Kurdami dinamiškai susietą vykdomąjį failą, pridėkite visus simbolius prie dinaminio simbolio lentelės. Dinaminio simbolio lentelė yra simbolių rinkinys, kuris yra matomas iš dinaminių objektų vykdymo metu. Jei nenorite naudoti šios parinkties, dinaminio simbolio lentelėje paprastai yra tik tie simboliai, kuriuos nurodo koks nors dinaminis objektas, paminėtas nuorodoje. Jei naudojate "dlopen", norėdami įkelti dinaminį objektą, kuris turi grįžti į programoje nurodytus simbolius, o ne į kitą dinaminį objektą, tikriausiai turėsite naudoti šią parinktį susiejant pačią programą. Taip pat galite naudoti scenarijų versiją, norėdami valdyti, kokie simboliai turėtų būti įtraukti į dinaminio simbolio lentelę, jei tai palaiko išvesties formatas. Žr aprašymą--versijos scenarijus in @ ref {VERSION}. -EB Susieti didelius objektus. Tai daro įtaką numatytam išvesties formatui. -EL Sieti mažai-endianus objektus. Tai daro įtaką numatytam išvesties formatui. -f --forizmas vardas Kuriant ELF bendrai naudojamą objektą, nustatykite vidinį DT_AUXILIARY lauką nurodytam vardui. Tai nurodo dinaminį linkerį, kad bendro naudojimo objekto simbolių lentelė turėtų būti naudojama kaip bendrojo objekto simbolių lentelė kaip pagalbinis filtras. vardas . Jei vėliau susiesite programą su šiuo filtro objektu, tada, kai paleisite programą, dinaminis jungiklis pamatys lauką DT_AUXILIARY. Jei dinaminis linkeris pašalina visus filtro objekto simbolius, jis pirmiausia patikrins, ar bendrame objekte yra apibrėžimas vardas . Jei yra vienas, jis bus naudojamas vietoj apibrėžties filtro objekte. Bendras objektas vardas nereikia egzistuoti. Taigi bendras objektas vardas gali būti naudojamas alternatyviam tam tikrų funkcijų įgyvendinimui, galbūt norint derinti arba konkrečiai mašinai atlikti. Ši parinktis gali būti nurodyta daugiau nei vieną kartą. DT_AUXILIARY įrašai bus sukurti tokia tvarka, kokia jie rodomi komandinėje eilutėje. -F vardas --filtras vardas Sukurdami bendrai naudojamą objektą ELF, nustatykite vidinį lauką DT_FILTER nurodytu vardu. Tai nurodo dinaminį linkerį, kad sukurto bendrojo objekto simbolių lentelė turėtų būti naudojama kaip filtras bendrų objektų simbolių lentelėje vardas . Jei vėliau susiesite programą su šiuo filtro objektu, tada paleisdami programą, dinaminis linkeris pamatys lauką DT_FILTER. Dinaminis linkeris sutvarkys simbolius pagal filtro objekto simbolių lentelę kaip įprasta, tačiau jis iš tikrųjų susieja su apibrėžtais bendrame objekte esančiais apibrėžimais vardas . Taigi filtro objektas gali būti naudojamas norint pasirinkti objekto pateiktą simbolių pogrupį vardas . Kai kurie senesni linkeriai naudojo-F parinktis per kompiliavimo įrankių juostą, norint nurodyti objektinio failo formatą tiek įvesties, tiek išvesties objekto failams. GNU linkeris naudoja kitus mechanizmus šiam tikslui:-b, --formatas, --formatas parinktys, komandinė eilutė "TARGET" ir "GNUTARGET" aplinkos kintamasis. GNU linkeris ignoruoja-F parinktį, kai nesudarysite bendrai naudojamo objekto. -fini vardas Kuriant ELF vykdomąjį arba bendrai naudojamą objektą, skambinkite NAME, kai vykdomąjį arba bendrai naudojamą objektą iškraunate, nustatydami DT_FINI į funkcijos adresą. Pagal numatytuosius nustatymus, linkeris naudoja "_fini" kaip funkciją skambinti. -g Ignoruotas. Numatytas suderinamumas su kitomis priemonėmis. -G vertę --gpsize = vertę Nustatykite maksimalų optimizuojamų objektų dydį GP registruose dydis . Tai yra reikšminga tik objekto failų formoms, pavyzdžiui, MIPS ECOFF, kuri palaiko didelių ir mažų objektų įvairiose sekcijose. Tai ignoruojama kitiems objektų failų formatais. -h vardas -someam = vardas Kuriant ELF bendrai naudojamą objektą, nustatykite vidinį lauką DT_SONAME nurodytu vardu. Kai vykdomasis failas yra susietas su bendrai naudojamu objektu, turinčiu lauką DT_SONAME, tada, kai vykdomas vykdomąjį failą, dinaminis linkeris bandys įkelti bendrai naudojamą objektą, nurodytą lauke DT_SONAME, o ne naudojant failo pavadinimą, pateiktą linkeriui. -i Atlikite papildomą nuorodą (tą patį kaip parinktį-r). -init vardas Kuriant ELF vykdomąjį arba bendrai naudojamą objektą, skambinkite "NAME", kai įkeliamas vykdomąjį arba bendrai naudojamą objektą, nustatydami DT_INIT prie funkcijos adreso. Pagal numatytuosius nustatymus, linkeris naudoja "_init", kaip skambinimo funkciją. -l archyvuoti --library = archyvuoti Pridėti archyvo failą archyvuoti prie susietų failų sąrašo. Ši parinktis gali būti naudojama bet kuriuo metu.ld ieškos savo kelio sąrašo "libarchive.a" įvykiams kiekvienam archyvuoti nurodytas. Sistemose, kurios palaiko bendras bibliotekas,ld taip pat gali ieškoti bibliotekų su kitais nei ".a" plėtiniais. Konkrečiai kalbant apie ELF ir SunOS sistemas,ld ieškos bibliotekos katalogo su ".so" išplėtimu prieš ieškodami ".a" plėtinio. Pagal susitarimą ".so" plėtinys nurodo bendrąją biblioteką. Linkeras ieškos archyve tik vieną kartą, toje vietoje, kur jis nurodytas komandinėje eilutėje. Jei archyve nustatomas simbolis, kuris buvo neapibrėžtas kai kuriam objektui, kuris pasirodė prieš archyvą komandinėje eilutėje, linkeris įtraukia atitinkamą (-us) failą (-us) iš archyvo. Tačiau neapibrėžtas simbolis objekte, kuris vėliau pasirodo komandinėje eilutėje, nesukels linkerio vėl ieškoti archyvuose. Žr-( parinktis, kaip priversti linkerį keletą kartų ieškoti archyvų. Tą pačią archyvą galite įrašyti keletą kartų komandinėje eilutėje. Tokio tipo archyvo paieška yra Unix nuorodų standartas. Tačiau, jei jūs naudojateld onAIX, atkreipkite dėmesį, kad tai skiriasi nuo AIX nuorodų elgesio. -L searchdir --library-path = searchdir Pridėti kelią searchdir į takų sąrašą, kurisld ieškos archyvų bibliotekų irld valdymo scenarijus. Galite naudoti šią parinktį bet kuriuo metu. Katalogai ieškoma tokia tvarka, kokia jie nurodyti komandinėje eilutėje. Katalogai, nurodyti komandinėje eilutėje, yra ieškomi prieš numatytuosius katalogus. Visi-L parinktys taikomos visiems-l pasirinkimai, nepriklausomai nuo to, kokia tvarka pasirodys pasirinkimai. Jei searchdir prasideda "=", tada "=" bus pakeista Sysroot prefiksas , maršrutas, nurodytas, kai yra sukonfigūruota linker. Numatytasis maršrutų rinkinys, kurio ieškoma (nenurodyta su-L) priklauso nuo to, kokia emuliacijald naudoja, o kai kuriais atvejais ir tai, kaip ji buvo konfigūruojama. Kelias taip pat gali būti nurodyti nuorodų scenarijuje su komanda "SEARCH_DIR". Tokiu būdu sukurtomis katalogomis ieškoma taško, kuriame komandų eilutėje atsiranda nuorodų scenarijus. -m emuliacija Imituoti emuliacija linkeris. Galite nurodyti galimas emulacijas su--verbose arba-Vgalimybės. Jei-m parinktis nenaudojama, emuliacija imama iš "LDEMULATION" aplinkos kintamojo, jei jis yra apibrėžtas. Priešingu atveju, numatytoji emuliacija priklauso nuo to, kaip sukonfigūruota linker. -M - Spausdinti žemėlapį Spausdinkite nuorodų žemėlapį į standartinę išvestį. Nuorodų katalogas pateikia informaciją apie nuorodą, įskaitant šias: * Kai objekto failai ir simboliai susiejami su atmintimi. * Kaip paskirstomi simboliai? * Visi archyvo nariai, įtraukti į nuorodą, nurodydami simbolį, kuris sukėlė archyvo nario įvedimą. -n --Nmagic Išjunkite puslapių išlyginimo sekcijas ir, jei įmanoma, pažymėkite išvestį kaip "NMAGIC". -N - magiškas Nustatykite, kad tekstas ir duomenų skyriai būtų skaitomi ir įrašomi. Be to, nespausdinkite duomenų segmento ir neleiskite susieti su bendromis bibliotekomis. Jei išvesties formatas palaiko Unix stiliaus magiškus numerius, pažymėkite išvestį kaip "OMAGIC". - -no-omagic Ši parinktis paneigia daugumą "-N pasirinkimas. Jis nustato, kad teksto sekcija yra tik skaitoma, ir verčia duomenų segmentą suderinti su puslapiu. Pastaba - ši parinktis neleidžia susieti su bendromis bibliotekomis. Naudok-Bdynamic už tai. -o produkcija --output = produkcija Naudok produkcija kaip "ld; jei ši parinktis nenurodyta, pavadinimas a.uk. naudojamas pagal nutylėjimą. Komandos scenarijus "OUTPUT" taip pat gali nurodyti išvesties failo pavadinimą. -O lygis Jei lygis yra skaičių reikšmės didesnės už nulįld optimizuoja produkciją. Tai gali užtrukti žymiai ilgiau, todėl tikriausiai turėtų būti įjungta tik galutiniam dvejetainiui. -q - emit-relocs Palikite perkėlimo sekcijas ir turinį visiškai susietuose vykdomajose programose. Skelbimo nuorodų analizės ir optimizavimo įrankiai gali reikalauti šios informacijos, kad atliktų teisingus vykdomųjų failų pakeitimus. Tai padidina vykdomąjį failą. Ši parinktis šiuo metu palaikoma tik ELF platformose. -r - susiejamas Sukurkite perkeliamą produkciją --- t.y., generuokite išvesties failą, kuris, savo ruožtu, gali būti įvestisld. Tai dažnai vadinama dalinis susiejimas . Kaip šalutinis efektas, aplinkoje, kurioje palaikomi standartiniai Unix magiškieji numeriai, ši parinktis taip pat nustato išvesties failo magišką numerį "OMAGIC". Jei ši parinktis nenurodyta, generuojamas absoliutus failas. Susiejant C + + programas, ši parinktis nedarys išspręsti nuorodas į konstruktorius; tai padaryti, naudoti-Ur. Kai įvesties failas nėra tokio paties formato kaip išvesties failas, dalinis susiejimas palaikomas tik tuo atveju, jei šiame įvesties byloje nėra jokių perkėlimų. Įvairūs išvesties formatai gali turėti papildomų apribojimų; Pavyzdžiui, kai kurie "a.out" formato pagrindai neleidžia dalinai susieti su įvesties failais kitais formatais. Ši parinktis yra tokia pati kaip ir-i. -R failo pavadinimas - tiesiog simboliai = failo pavadinimas Perskaitykite simbolių pavadinimus ir jų adresus iš failo pavadinimas , bet ne perkelkite arba įtraukite į produkciją. Tai leidžia jūsų išvesties failui simboliškai nurodyti absoliučias atminties vietas, apibrėžtas kitose programose. Galite naudoti šią parinktį daugiau nei vieną kartą. Dėl suderinamumo su kitais ELF linkeriais, jei-R po parinktimi seka katalogo pavadinimas, o ne failo vardas, jis laikomas "-rpath pasirinkimas. -s - "Strip-all" Išeikite visą informaciją apie simbolį iš išvesties failo. -S --strump-debug Išeikite iš debitininko simbolio informaciją (bet ne visus simbolius) iš išvesties failo. -t - trauka Spausdinkite įvesties failų pavadinimus kaipld juos apdoroja. -T scenarijus --script = scenarijus Naudok scenarijus kaip linkerio scenarijus. Šis scenarijus pakeičialdNumatytasis susirašinėjimo scenarijus (o ne pridėti prie jo), taigi Commandfile turi nurodyti viską, kas reikalinga išvesties failo apibūdinimui. Jei scenarijus dabartiniame kataloge neegzistuoja, "ld" ieško to kataloguose, nurodytuose ankstesniuose-L galimybės. Daugkartinis-T galimybės kaupiasi. -u simbolis --undefined = simbolis Jėga simbolis turi būti įrašytas į išvesties failą kaip neapibrėžtas simbolis. Pavyzdžiui, tai gali paskatinti papildomų modulių susiejimą su standartinėmis bibliotekomis.-u gali būti kartojamas su skirtingais parinkčių argumentais, norint įvesti papildomus neapibrėžtus simbolius. Ši parinktis atitinka "EXTERN" nuorodų scenarijų komandą. -Ur Šis variantas yra lygiavertis programoms, išskyrus C + + programas-r: tai generuoja perkeliamą produkciją --- t.y., išvesties failą, kuris, savo ruožtu, gali būti naudojamas kaip įvestisld. Susiejant C + + programas,-Ur daro išspręsti nuorodas į konstruktorius, skirtingai-r. Jis neveikia naudoti-Ur su bylomis, kurios buvo susijusios su-Ur; Kai konstruktoriaus stalas yra pastatytas, jo negalima pridėti. Naudok-Ur tik paskutinei dalinei nuorodai, ir-r kitiems. --unique = SKYRIUS Sukuria atskirą išvesties sekciją kiekvienai įvesties sekcijos atitikčiai SKYRIUS , arba jei pasirenkama alternatyva SKYRIUS trūksta argumentų apie kiekvieną našlaičių įvedimo sekciją. Režimų skyrius yra tas, kuris konkrečiai nenurodytas nuorodų scenarijuje. Šią parinktį galite naudoti kelis kartus komandinėje eilutėje; Tai užkerta kelią įprastam vienodo pavadinimo įvesties skirsnių sujungimui, antraeilės išvesties sekcijos paskyrimams linkerio scenarijuje. -v --versija -V Rodyti versijos numerįld. The-V parinktis taip pat pateikia palaikomų emuliacijų sąrašą. -x --Discard-all Ištrinkite visus vietinius simbolius. -X --Diskardas - vietiniai gyventojai Ištrinkite visus laikinus vietinius simbolius. Daugumai tikslų tai visi vietiniai simboliai, kurių pavadinimai prasidedaL. -i simbolis --trace-simbolis = simbolis Spausdinti kiekvieno susieto failo pavadinimą, kuriame simbolis pasirodo Ši parinktis gali būti suteikta bet kuriuo metu. Daugelyje sistemų reikia pridėti paryškinimą. Ši parinktis yra naudinga, kai jūsų nuorodoje yra neapibrėžtas simbolis, bet nežinote, iš kur atsiranda nuoroda. -Y kelias Papildyti kelias į numatytąją bibliotekos paieškos kelią. Ši parinktis yra Solaris suderinamumas. -z raktinis žodis Pripažinti raktiniai žodžiai yra initfirst, interposition, loadfltr, nodefaultlib, nodelete, nodlopen, nodump, now, origin, combreloc, nocombreloc ir nocopyreloc. " Kiti raktiniai žodžiai ignoruojami "Solaris" suderinamumui. "initfirst" žymi objektą, kuris bus inicijuotas pirmą kartą paleidus prieš kitus objektus."įstrižai" žymi objektą, kurio simbolių lentelė įsiterpia prieš visus simbolius, bet pagrindinį vykdomąjį failą. "loadfltr" žymi objektą, kurį jo filietai apdoroja iš karto paleidimo metu. "nodegaultlib" žymi objektą, kurio objekto priklausomybių paieška bus ignoruojama visi numatyti bibliotekos paieškos būdai. "nodelete" pažymi, kad objektas neturėtų būti iškraunamas paleidimo metu. "nodlopen" žymi objektą, kurio nėra "dlopen". "Node" pažymi, kad objektą negalima išmesti "dldump". "dabar" pažymi objektą su nejautriu paleidimo įpareigojimu. "kilmė" žymi objektą gali būti "$ ORIGIN". "defs" neleidžia neapibrėžtų simbolių. "muldefs" leidžia keletą apibrėžimų. "combreloc" sujungia kelis reloc sekcijas ir juos rūšiuoja, kad dinaminio simbolio paieškos cecho galima. "nocombreloc" išjungia kelis reloc skirsnius, jungiančius. "nocopyreloc" išjungia kopijų redagavimą. -( archyvuose -) - pradžios grupė archyvuose --end-grupė The archyvuose turėtų būti archyvinių failų sąrašas. Jie gali būti arba tiesioginiai failų pavadinimai, arba-lgalimybės. Šie archyvai ieškomi pakartotinai, kol nebus sukurtos naujos neapibrėžtos nuorodos. Paprastai archyvas ieškomas tik vieną kartą, kai jis yra nurodytas komandinėje eilutėje. Jei šiame archyve reikalingas simbolis, norint išspręsti neapibrėžtą simbolį, nurodytą archyvo objekte, kuris vėliau pasirodo komandinėje eilutėje, linkeris negalės išspręsti šios nuorodos. Grupuojant archyvus, jie visi bus ieškomi pakartotinai, kol bus išspręstos visos galimos nuorodos. Šios parinkties naudojimas turi didelę našumo kainą. Geriausia tai naudoti tik tada, kai yra neišvengiamos dvi ar daugiau archyvų apvalios nuorodos. - Priimti-nežinomas-įėjimo arch - ne-priimti-nežinomas-įėjimo arch Sakoma linkeriui priimti įvesties failus, kurių architektūrą negalima atpažinti. Manoma, kad vartotojas žino, ką jie daro, ir sąmoningai nori susieti šiuos nežinomus įvesties failus. Tai buvo numatytasis linkerio elgesys prieš paleidžiant 2.14. Numatytasis įvykis nuo 2.14 versijos - tai atmesti tokius įvesties failus, taigi ir- Priimti-nežinomas-įėjimo arch parinktis buvo pridėta, kad atkurtumėte seną elgesį. įsitvirtinti raktinis žodis Ši parinktis ignoruojama "SunOS" suderinamumui. -Bdynamic -iš -call_shared Ryšys su dinaminėmis bibliotekomis. Tai tik prasminga platformose, kurioms palaikomos bendrai naudojamos bibliotekos. Paprastai ši parinktis yra tokia platforma pagal nutylėjimą. Skirtingos šios parinkties variantai yra suderinami su įvairiomis sistemomis. Šią parinktį galite naudoti kelis kartus komandinėje eilutėje: tai turi įtakos bibliotekos paieškai-l pasirinkimo galimybės. -B grupė Dinaminėje dalyje įrašykite "DT_FLAGS_1" žymą "DF_1_GROUP". Tai sukelia runtime linker tvarkyti šio objekto paiešką ir jo priklausomybes atlikti tik grupės viduje.- ne-undefined yra numanoma. Ši parinktis yra reikšminga tik ELF platformoms, kurios palaiko bendras bibliotekas. -Bstatic -dn -non_shared -statinis Nejunkite nuorodų į bendrinamas bibliotekas. Tai tik prasminga platformose, kurioms palaikomos bendrai naudojamos bibliotekos. Skirtingos šios parinkties variantai yra suderinami su įvairiomis sistemomis. Šią parinktį galite naudoti kelis kartus komandinėje eilutėje: tai turi įtakos bibliotekos paieškai-l pasirinkimo galimybės. -Bsymbolic Kurdami bendrąją biblioteką, nuorodas į globalius simbolius priskirkite bendrai naudojamai bibliotekai, jei tokia yra, apibrėžimui. Paprastai programa, susieta su bendrai naudojama biblioteka, gali keisti bendrinamos bibliotekos apibrėžimą. Ši parinktis yra prasminga tik ELFplatforms, kurios palaiko bendras bibliotekas. --check-sections --Nekontrociniai skyriai Prašo linkerio ne patikrinti skyrių adresus po to, kai jie buvo paskirti, kad pamatytumėte, ar jie sutampa. Paprastai "linkeris" atliks šį patikrinimą ir, jei nustatys kokį nors dalinį dubliavimą, jis sukurs tinkamus klaidų pranešimus. Linkeris žino apie mokesčius už sluoksnių sekcijas. Numatytasis elgesys gali būti atkurtas naudojant komandų eilutės jungiklį--check-sections. --cref Išvesties kryžminį nuorodų lentelę. Sukuriant nuorodų žemėlapio failą, kryžminė lentelė spausdinama į žemėlapio failą. Priešingu atveju jis spausdinamas standartine išvestimi. Lentelės formatas yra tyčia paprasta, todėl ją, jei reikia, gali būti lengvai apdorojamas scenarijaus. Simboliai yra atspausdinti, surūšiuoti pagal pavadinimą. Kiekvienam simboliui pateikiamas failų pavadinimų sąrašas. Jei simbolis yra apibrėžtas, pirmasis failas yra apibrėžties vieta. Likusiuose failuose yra nuorodos į simbolį. --no-define-common Ši parinktis slopina adresų priskyrimą bendram simboliui. Komandos scenarijus "INHIBIT_COMMON_ALLOCATION" turi tą patį efektą. The--no-define-common parinktis leidžia atskirti sprendimą priskirti adresus bendram simboliui iš pasirinkto failo tipo pasirinkimo; priešingu atveju ne-perkeliamas išvesties tipas įpareigoja adresus priskirti bendram simboliui. Naudojimas--no-define-common leidžia bendriems simboliams, kurie yra nukreipiami į bendrą biblioteką, priskirti adresus tik pagrindinėje programoje. Tai pašalina nepanaudotą pasikartojančią erdvę bendrinamoje bibliotekoje ir taip pat užkerta kelią bet kokiai galimai painiavai dėl neteisingo dublikato pašalinimo, kai yra daug dinaminių modulių su specializuotais paieškos paleidimo simbolių raiškos būdais. --defsym simbolis = išraiška Išvesties byloje sukurkite pasaulinį simbolį, kuriame nurodytas absoliutusis adresas išraiška . Galite naudoti šią parinktį tiek kartų, kiek reikia, norėdami apibrėžti kelis simbolius komandinėje eilutėje. Rekomenduojama ribota aritmetinė forma išraiška šiame kontekste: galite nurodyti šešioliktainę konstantą arba esamo simbolio pavadinimą arba naudoti "+" ir "-", kad pridėtumėte ar atimtumėte šešioliktainius konstantus ar simbolius. Jei jums reikalingos išsamesnės išraiškos, apsvarstykite galimybę naudoti scenarijaus nuorodą komandų kalbą. Pastaba: tarp baltų tarpų neturėtų būti tarpo simbolis , lygus ženklas (``='') ir išraiška . --demangle = stilius - ne-demangle Šios parinktys kontroliuoja, ar simbolių pavadinimus reikia atskirti per klaidų pranešimus ir kitą išvestį. Kai linkeriui pasakoma, kad jis turi suskaidyti, jis bando pateikti simbolių pavadinimus lengvai suprantamu būdu: juose išdėstomi pagrindiniai požymiai, jei jie naudojami objekto failo formatu ir konvertuoja C ++ sugadintus simbolių pavadinimus į vartotojo skaitomuosius vardus. Skirtingi kompiliatoriai turi skirtingus mangling stilius. Pasirinktinas atskyrimo stiliaus argumentas gali būti naudojamas norint pasirinkti tinkamą kompiliatoriaus atminimo stilių. Linkeris pagal numatytuosius nustatymus bus suskaidytas, nebent aplinkos kintamasisCOLLECT_NO_DEMANGLE yra nustatyta. Šios parinktys gali būti naudojamos norint nepaisyti numatytojo. --dynamic-linker failas Nustatykite dinaminio linkerio pavadinimą. Tai prasminga tik generuojant dinamiškai susietus ELF vykdomąjį failą. Numatytoji dinaminė linker paprastai yra teisinga; nenaudokite to, nebent žinote, ką darai. --embedded-relocs Ši parinktis yra prasminga tik susiejant MIPS įterptą PIC kodą, sukurtą "-membedded-pic" parinktimi GNU kompiliatoriui ir surinkėjui. Tai sukelia linkerio sukurti lentelę, kuri gali būti naudojama runtime, norint perkelti bet kokius duomenis, kurie buvo statiškai inicijuojami rodyklės vertes. Žr. "Testuite / ld-empic" kodą išsamią informaciją. - fataliniai įspėjimai Visus įspėjimus traukite kaip klaidas. --force-exe-priesaga Įsitikinkite, kad išvesties failas turi .exe priesagą. Jei sėkmingai sukurtas visiškai susietas išvesties failas neturi ". Exe" arba ".dll" priesaga, ši parinktis verčia linkerį kopijuoti išvesties failą į vieną pavadinimą su ".exe" priesaga. Ši parinktis yra naudinga, kai "Microsoft Windows" pagrindiniame kompiuteryje naudoja nemodifikuotus "Unix" failų rinkmenas, nes kai kurioms "Windows" versijoms nebus paleista vaizdo, nebent jis baigiasi ". Exe" priesaga. --no-gc-sekcijos --gc-skyriai Įgalinti nepanaudotų įvesties sekcijų šiukšliadėžę. Tai ignoruojama tikslams, kurie nepalaiko šios parinkties. Ši parinktis nesuderinama su-r, taip pat neturėtų būti naudojamas su dinaminiu susiejimu. Numatytoji elgsena (nevykdžius šio šiukšliadėžės) gali būti atkurta nurodant--no-gc-sekcijos komandinėje eilutėje. --Pagalba Spausdinkite komandinės eilutės parinkčių santrauką į standartinę išvestį ir išeikite. - Tikslinė pagalba Spausdinkite visų standartinių išėjimų ir išėjimų esančių konkrečių parinkčių santrauką. -Maps mapfile Spausdinti nuorodų žemėlapį į failą mapfile . Žr aprašymą-M parinktis aukščiau. --ne-keep-memory ld Paprastai optimizuoja greitį per atminties naudojimą, įkėlus į atmintį įvesties failų simbolių lenteles. Ši galimybė nurodold vietoj to optimizuoti atminties naudojimui, jei reikia, perskaičiuodami simbolių lenteles. Tai gali prireikti, jeild trunka atminties, o susieja didelį vykdomąjį failą. - ne-undefined -z defs Paprastai, kai kuria ne simbolinę bendrinamą biblioteką, neapibrėžti simboliai leidžiami ir lieka išspręsti paleidimo įkėlimo metu. Šios parinktys neleidžia tokio neapibrėžto simbolio. - visiškas kartotinis apibrėžimas -z muldefs Paprastai, kai simbolis yra apibrėžtas kelis kartus, linkeris praneša apie mirtiną klaidą. Šios parinktys leidžia keletą apibrėžimų ir bus naudojamas pirmasis apibrėžimas. --Dabar-shlib-undefined Leisti nenustatytus simbolius bendrinamuosiuose objektuose net tada, kai yra nustatytas - ne-undefined. Grynasis rezultatas bus tas, kad nenustatyti simboliai įprastiniuose objektuose vis tiek sukelia klaidą, bet neapibrėžti simboliai bendrinamuosiuose objektuose bus ignoruojami. Įdiegus no_undefined daroma prielaida, kad runtime linker užblokuos nenustatytus simbolius. Tačiau yra bent viena sistema (BeOS), kuriuose neapibrėžti simboliai bendriose bibliotekose yra įprasti, nes branduolys juos pakeičia įkrovos metu, norėdami pasirinkti, kuri funkcija yra tinkamiausia dabartinei architektūrai. T.Y. dinamiškai pasirinkti tinkamą įjungimo funkciją. Matyt, taip pat yra įprasta, kad HPPA bendrai naudojamos bibliotekos turi neapibrėžtus simbolius. - ne-undefined-versija Paprastai, kai simbolis turi neapibrėžtą versiją, linkeris jį ignoruos. Ši parinktis neleidžia simbolių su neapibrėžta versija, o vietoje to bus pateikta netikėta klaida. --no-warn-neatitikimas Paprastaild pateiks klaidą, jei bandysite susieti įvesties failus, kurie dėl kokios nors priežasties nesuderinami, galbūt dėl to, kad jie buvo surinkti skirtingiems procesoriams ar skirtingiems galutiniams. Ši galimybė nurodold kad ji turėtų tyliai leisti tokias galimas klaidas. Ši parinktis turėtų būti naudojama tik atsargiai, tais atvejais, kai atlikote tam tikrus specialius veiksmus, kurie užtikrina, kad nuorodų klaidos yra netinkamos. - ne visos archyvas Išjunkite- viskas archyvas parinktis vėlesniems archyvo failams. --noinhibit-exec Išsaugokite vykdomąjį išvesties failą, kai jis vis dar bus naudojamas.Paprastai linkeris nepateiks išvesties failo, jei ryšio metu jis susiduria su klaidomis; jis išsijungia nepateikus išvesties failo, kai jis bet kokią klaidą išduoda. -nostdlib Tik paieškos bibliotekos katalogai, aiškiai nurodyti komandinėje eilutėje. Linkerio scenarijose nurodyti bibliotekos katalogai (įskaitant komandinės eilutės nurodytus nuorodų scenarijus) yra ignoruojami. --formatas išvesties formatas ld gali būti sukonfigūruotas palaikyti daugiau nei vieną objekto failo tipą. Jei tavold yra sukonfigūruotas tokiu būdu, galite naudoti--formatas parinktis nurodyti dvejetainį formatą išvesties objekto failui. Net tada, kaild yra sukonfigūruotas palaikyti alternatyvius objektų formatus, jums paprastai nereikia tai nurodyti, kaipld turėtų būti sukonfigūruotas kaip numatytasis išvesties formatas, kuris yra labiausiai įprastas kiekvieno įrenginio formatas. išvesties formatas yra tekstinė eilutė, tam tikro formato pavadinimas, kurį palaiko BFD bibliotekos. (Galite nurodyti turimus dvejetainius formatus suobjdump-i.) Komandos scenarijus "OUTPUT_FORMAT" taip pat gali nurodyti išvesties formatą, tačiau ši parinktis ją pakeičia. -qmagic Ši parinktis yra ignoruojama "Linux" suderinamumui. -Kaip Ši parinktis ignoruojama dėl SVR4 suderinamumo. --relax Galima naudoti su mašina susijusius efektus. Ši parinktis palaikoma tik keliais tikslais. Kai kuriose platformose--relax parinktis atlieka globalius optimizavimus, kurie tampa įmanomi, kai "linkeris" išsprendžia adresavimą programoje, pavyzdžiui, atsipalaiduoti adreso režimai ir sintezuojant naujas instrukcijas išvesties objekto failo. Kai kuriose platformose tokie laiko optimizavimo ryšiai gali padaryti simbolinę įvykdomos vykdomosios versijos neįmanoma. Tai žinoma, kad Matsushita MN10200 ir MN10300 šeimos procesoriai. Platformose, kuriose tai nepalaikoma--relax yra priimtas, bet ignoruojamas. --reikštas simbolis-failas failo pavadinimas Išsaugoti tik simboliai, išvardyti rinkmenoje failo pavadinimas , išmesdami visus kitus. failo pavadinimas tai tiesiog plokščia byla, kurioje vienas simbolis yra eilutėje. Ši parinktis yra ypač naudinga aplinkose (pvz., "VxWorks"), kur didelė pasaulinė simbolių lentelė kaupiama palaipsniui, siekiant išsaugoti laikinąją atmintį. --reikštas simbolis-failas daro ne atmesti neapibrėžtus simbolius ar simbolius, reikalingus perkėlimams. Galite nurodyti tik--reikštas simbolis-failas vieną kartą komandinėje eilutėje. Tai pakeičia-s ir-S. -rpath dir Įtraukite katalogą į bibliotekos paleidimo paieškos kelią. Tai naudojama susiejant ELF vykdomąjį su bendraisiais objektais. Visi-rpath Argumentai yra sujungti ir perkelti į runtime linker, kuris juos naudoja ieškant bendrų objektų vykdymo metu. The-rpath parinktis taip pat naudojama nustatant bendrai naudojamus objektus, kurie reikalingi bendrai naudojamiems objektams, aiškiai įtrauktiems į nuorodą; žiūrėkite aprašymą-rpath-link pasirinkimas. Jei-rpath nenaudojamas susiejant ELF vykdomąjį failą, aplinkoskatalogo turinys "LD_RUN_PATH" bus naudojamas, jei jis bus apibrėžtas. The-rpath parinktis taip pat gali būti naudojama SunOS. Pagal numatytuosius nustatymus "SunOS", linkeris sudarys paleisties paieškos pleistras iš visų-L pasirinkimai yra duodami. Jeigu-rpath parinktis yra naudojama, runtime paieškos kelias bus suformuotas tik naudojant-rpath parinktys, ignoruojant-Lgalimybės. Tai gali būti naudinga naudojant gcc, kuris prideda daugybę-L parinktys, kurios gali būti įdiegtos į "NFS" failų sistemas. Dėl suderinamumo su kitais ELF linkeriais, jei-R po parinktimi seka katalogo pavadinimas, o ne failo vardas, jis laikomas "-rpath pasirinkimas. -rpath-link DIR Naudojant ELF arba SunOS, viena bendroji biblioteka gali reikalauti kito. Taip atsitinka, kai nuorodoje "ld-shared" yra bendrai naudojama biblioteka kaip vienas iš įvesties failų. Kai linkeris susiduria su tokia priklausomybe, kai atlieka nepaskirstytą, nepakeičiamą nuorodą, ji automatiškai bandys surasti reikiamą bendrinamą biblioteką ir įtraukti ją į nuorodą, jei ji nėra aiškiai nurodyta. Tokiu atveju-rpath-link parinktis nurodo pirmąjį ieškomų katalogų rinkinį. The-rpath-link parinktis gali nurodyti katalogų pavadinimų seką, nurodydama pavadinimų sąrašą, atskirtus dviem žiedais, arba kelis kartus. Ši parinktis turėtų būti naudojama atsargiai, nes ji ignoruoja paieškos kelią, kuris galėjo būti sunkiai surinktas į bendrą biblioteką. Tokiu atveju netyčia galima naudoti kitokią paieškos kelią, negu "runtime linker". Linkeris naudoja šiuos paieškos kelius, norėdami rasti reikalingas bendrinamas bibliotekas. 1. Bet kokie katalogai, kuriuos nurodo-rpath-link galimybės. 2. Bet kokie katalogai, kuriuos nurodo-rpath galimybės. Skirtumas tarp-rpath ir-rpath-link ar tai katalogai, kuriuos nurodo-rpath parinktys yra įtrauktos į vykdomąjį ir naudojamos vykdymo metu, o-rpath-link parinktis yra veiksminga tik tada, kai susiejamas laikas. Tai tik vietinei linkerei. 3. ELF sistemoje, jei-rpath ir "rpath-link" parinktys nebuvo naudojamos, ieškokite aplinkos kintamojo "LD_RUN_PATH" turinio. Tai tik vietinei linkerei. 4. Apie SunOS, jei-rpath parinktis nebuvo naudojama, ieškokite bet kokių nurodytų katalogų naudojant-L galimybės. 5. Vietiniam nuorodiniam elementui aplinkos kintamojo "LD_LIBRARY_PATH" turinys. 6. Vietiniam ELF linkeriui, bendrinamos bibliotekos "DT_RUNPATH" arba "DT_RPATH" kataloguose ieškoma bendrų bibliotekų, reikalingų jai.Įrašai "DT_RPATH" yra ignoruojami, jei egzistuoja "DT_RUNPATH" įrašai. 7. Paprastai numatytieji katalogai / lib ir / usr / lib . 8. Dėl vietinės linkerio ELF sistemoje, jei failas /etc/ld.so.conf egzistuoja kataloge, rasto toje byloje. Jei reikalinga bendrai naudojama biblioteka nerasta, linkeris išleidžia įspėjimą ir tęsia nuorodą. - bendrai -Sprendžiama Sukurkite bendrintą biblioteką. Šiuo metu tai palaikoma tik ELF, XCOFF ir SunOS platformose. SunOS, linker automatiškai sukurs bendrąją biblioteką, jei-e parinktis nenaudojama ir nuorodoje yra neapibrėžtų simbolių. --Sort-common Ši galimybė nurodold bendrų simbolių pagal jų dydį rūšiuoti, kai jie pateikiami atitinkamose išvesties sekcijose. Pirma atėjai visi vieno baito simboliai, tada visi du baitai, tada visi keturi baitai, o paskui visa kita. Tai yra užkirsti kelią tarpų tarp simbolių dėl išlyginimo apribojimų. - suskirstytas pagal failą dydis Panašus į- pasiskirstymas pagal reloc bet sukuria naują išvesties sekciją kiekvienam įvesties failui, kai dydis yra pasiektas. dydis Numatytoji vertė yra 1 dydis, jei neatsižvelgiama. - pasiskirstymas pagal reloc suskaičiuoti Bando sukurti papildomus failus išvesties byloje, kad nė viename failo išvesties skyriuje nebūtų daugiau nei suskaičiuoti perkėlimai. Tai naudinga generuojant didelius perkeliamus failus, kuriuos galima atsisiųsti į tam tikrus realaus laiko branduolius su COFF objekto failo formatu; nes COFFcannot atstovauja daugiau kaip 65535 perkėlimų į vieną skyrių. Atkreipkite dėmesį, kad tai nepavyks dirbti su objekto failų formatais, kurie nepalaiko savavališkų sekcijų. Linkeris nesiskirstys atskirų įvesties skirsnių perskirstymui, taigi, jei vienoje įvesties dalyje yra daugiau nei suskaičiuoti vienoje išvesties sekcijoje bus daugybė perkėlimų. suskaičiuoti Numatyta, kad vertė yra 32768. --stats Apskaičiuokite ir rodykite statistiką apie linkerio veikimą, pvz., Vykdymo laiką ir atminties naudojimą. - tradicinis formatas Kai kurių tikslų atveju, produkcijald kai kuriais būdais skiriasi nuo kai kurių esamų nuorodų išvesties. Šis jungiklis prašold vietoj to naudoti tradicinį formatą. Pavyzdžiui, "SunOS"ld sujungia pasikartojančius įrašus simbolių eilutės lentelėje. Tai gali sumažinti išvesties failo dydį ir visą klaidų informaciją daugiau kaip 30 proc. Deja, SunOS "dbx" programa negali perskaityti gautos programos ("gdb" neturi problemų). The- tradicinis formatas jungiklis pasakojald nepalikti pasikartojančių įrašų. - sekcija-pradžia sectionname = org Suraskite skyrių išvesties byloje absoliučiu adresu, kurį nurodo org . Galite naudoti šią parinktį tiek kartų, kiek reikia, norėdami rasti kelis skyrius komandinėje eilutėje. org turi būti vienas šešioliktainis sveikasis skaičius; Dėl suderinamumo su kitais nuorodomis, galite praleisti pirmaujančią versiją0x paprastai siejama su šešioliktainėmis vertėmis. Pastaba: tarp baltų tarpų neturėtų būti tarpo sectionname , lygus ženklas (``='') ir org . -Tbss org -Tada org -Tekstas org Naudok org kaip pradinį adresą --- atitinkamai --- "bss", "data" arba "teksto" segmento išvesties failą. org turi būti vienas šešioliktainis sveikasis skaičius; Dėl suderinamumo su kitais nuorodomis, galite praleisti pirmaujančią versiją0x paprastai siejama su šešioliktainėmis vertėmis. - dll-verbose --verbose Rodyti versijos numerįld ir parašykite nuorodų emuliacijas. Rodoma, kokius įvesties failus galima ir negalima atidaryti. Parodykite linkerio scenarijų, kurį naudoja linkeris. --version-script = versija-scriptfile Nurodykite versijos scenarijaus pavadinimą linkeriui. Tai paprastai naudojama kuriant bendras bibliotekas, norint nurodyti papildomą informaciją apie sukurtos bibliotekos versijos heirarchiją. Ši parinktis yra reikšminga tik ELF platformoms, kurios palaiko bendras bibliotekas. --Svarbu - dažnas Perspėti, kai bendras simbolis yra derinamas su kitu bendru simboliu arba simboliu. Unix "linkeriai" leidžia tai šiek tiek neapibrėžta praktika, tačiau kai kurių kitų operacinių sistemų nuorodų nėra. Ši parinktis leidžia rasti galimas problemas, susijusias su bendrų simbolių sujungimu. Deja, kai kurios C bibliotekos naudoja šią praktiką, todėl galite gauti įspėjimų apie simbolius bibliotekose ir programose. Čia yra trys pasauliniai simboliai, iliustruoti čia C pavyzdžiai: int i = 1; Apibrėžimas, kuris yra išvesties failo inicijuotų duomenų skyriuje. extern int i; Neapibrėžta nuoroda, kuri nesuteikia vietos. Kintamasis kažkur turi būti apibrėžimas arba bendras simbolis. int i; Bendras simbolis. Jei kintamasis turi tik vieną (vieną ar daugiau) bendrų simbolių, jis patenka į išvesties failo neinitializuotą duomenų lauką. Linkeris sujungia keletą bendrų tos pačios kintamojo simbolių į vieną simbolį. Jei jie yra skirtingo dydžio, jis pasirenka didžiausią dydį. Linkeris paverčia bendrą simbolį deklaracija, jei yra tas pats kintamasis. The--Svarbu - dažnas pasirinkimas gali pagaminti penkių rūšių įspėjimus. Kiekvienas įspėjimas susideda iš eilučių pora: pirmasis apibūdina tik susidurtą simbolį, o antrasis apibūdina ankstesnį simbolį, kuris susiduria su tuo pačiu pavadinimu. Vienas ar abu iš abiejų simbolių bus bendras simbolis. 1. Bendro simbolio įvedimas į nuorodą, nes simbolis jau yra apibrėžimas. (): įspėjimas: dažnas iš `"pakeista pagal apibrėžimą (): įspėjimas: apibrėžta čia2. Bendrojo simbolio įvedimas į nuorodą, nes susiduriama su vėlesniu simbolio apibrėžimu. Tai yra tas pats kaip ankstesnis atvejis, išskyrus tai, kad simboliai susiduria kitokia tvarka. (): įspėjimas: ""svarbiausias bendras (): įspėjimas: dažnas čia3. Susidaro bendras simbolis su ankstesniu tokio dydžio bendro simboliu. (): perspėjimas: keli bendrieji simboliai `' (): įspėjimas: čia yra ankstesnė4. Sujungiamas bendras simbolis su ankstesniu didesnio bendro simboliu. (): įspėjimas: dažnas iš `"pakeista didesniu dažnumu (): įspėjimas: čia dažniau5. Sujungiamas bendras simbolis su ankstesniu mažesniu bendru simboliu. Tai yra tas pats kaip ankstesnis atvejis, išskyrus tai, kad simboliai susiduria kitokia tvarka. (): įspėjimas: dažnas iš `"svarbiausias mažesnis bendras (): įspėjimas: čia yra mažesnis dažnas--Įrangos konstruktoriai Įspėti, jei naudojami visi pasauliniai konstruktoriai. Tai naudinga tik keletą objekto failų formatų. Formatuose, pvz., COFF arba ELF, nuorodų generatorius negali aptikti pasaulinių konstruktorių naudojimo. --warn-multiple-gp Įspėti, jei išvesties byloje reikalaujama kelių pasaulinių žymiklių reikšmių. Tai tik prasminga tam tikriems procesoriams, pvz., "Alfa". Konkrečiai, kai kurie procesoriai specialiame skyriuje pateikia didelės vertės konstantas. Specialus registras (pasaulinis žymeklis) nurodo į šio skyriaus vidurį, todėl pastovus efektyvus įkėlimas naudojant bazinį registrą yra santykinis adresavimo režimas. Kadangi bazinio registro santykinis režimas yra fiksuotas ir santykinai mažas (pvz., 16 bitų), tai riboja maksimalų pastovaus baseino dydį. Taigi didelėse programose dažnai reikia naudoti keletą globalių žymeklių verčių, kad būtų galima spręsti visas galimas konstantas. Pasirinkus šią parinktį įspėjimas bus išduodamas kiekvieną kartą, kai įvyks šis atvejis. - pakviesk vieną kartą Tik perspėkite vieną kartą už kiekvieną neapibrėžtą simbolį, o ne vieną kartą per modulį, kuris nurodo jį. --Sukurtas skyrius -lygiai Įspėti, jei išvesties sekcijos adresas pasikeitė dėl suderinimo. Paprastai derinimą nustato įvesties skiltis. Adresas bus pakeistas tik tuo atveju, jei jis nėra aiškiai nurodytas; tai yra, jei komanda "SKIRSNIS" nenurodo pradinio adreso skiltyje. - viskas archyvas Kiekvienam archyvui, nurodytam komandinėje eilutėje po- viskas archyvas parinktį, įtraukite kiekvieną objekto failą į archyvą nuorodoje, o ne ieškoti reikalingų objektų failų archyvuose. Tai paprastai naudojama archyvo failo įjungimui į bendrą biblioteką, priverčiant kiekvieną objektą įtraukti į gautą bendrąją biblioteką. Ši parinktis gali būti naudojama daugiau nei vieną kartą. Du nurodymai, naudojant šią parinktį iš gcc: Pirma, gcc nežino apie šią parinktį, taigi jūs turite naudoti-Wl, -visai archyvas. Antra, nepamirškite naudoti-Wl, -visas-archyvaspo savo archyvų sąrašo, nes gcc pridės savo nuorodą į savo archyvų sąrašą ir galbūt nenorėsite, kad ši vėliavėlė taip pat paveiktų. - apvyniokite simbolis Naudokite pakavimo funkciją simbolis . Bet kokia neapibrėžta nuoroda į simbolis bus išspręsta "__wrap_symbol". Bet kokia neapibrėžta nuoroda į "__real_symbol" bus išspręsta iki simbolis . Tai gali būti naudojama aprūpinti sistemą funkcija. Įpakavimo funkcija turėtų būti vadinama "__wrap_symbol". Jei jis nori skambinti sistemos funkcija, jis turėtų vadinti "__ real_symbol". Štai trivialus pavyzdys: void * __wrap_malloc (int c) {printf ("malloc paragino su% ld n", c); grįžti __real_malloc (c); }Jei susiejate kitą kodą su šiuo failu naudodami- pakuoti malloc, tada visi skambučiai į "malloc" pavadins funkciją "__wrap_malloc". Kvietimas "__real_malloc" į "__wrap_malloc" paskambins į tikrąją "malloc" funkciją. Galbūt norėsite pateikti "__real_malloc" funkciją taip, kad nuorodos be "- apvyniokite pasirinkimas bus sėkmingas. Jei tai padarysite, neturėtumėte įdėti "__ real_malloc" apibrėžimo toje pačioje byloje kaip "__wrap_malloc"; Jei tai padarysite, surinkėjas gali išspręsti skambutį, kol linkeris galės sukomponuoti jį į "malloc". --enable-new-dtags --Disable-new-dtags Šis linkeris gali sukurti naujas dinamines žymes ELF. Bet senesnės ELF sistemos gali jų nesuprasti. Jei nurodysite--enable-new-dtags, dinaminės žymos bus sukurtos, jei reikia. Jei nurodysite--Disable-new-dtags, naujos dinaminės žymos nebus sukurtos. Pagal numatytuosius nustatymus naujos dinaminės žymos nėra sukurtos. Atminkite, kad šios parinktys yra prieinamos tik FORF sistemoms. I386 PE linkeris palaiko- bendrai parinktį, dėl kurios produkcija yra dinamiškai susieta biblioteka (DLL), o ne įprasta vykdomoji programa. Jei naudosite šią parinktį, turėtumėte pavadinti išvestį "* .dll". Be to, linkeris visiškai palaiko standartinius "* .def" failus, kurie gali būti nurodyti komandinėje eilutėje kaip objekto failas (iš tikrųjų, jis turėtų būti pateiktas archyvuose, iš kurių jis eksportuoja simbolius, siekiant užtikrinti, kad jie susieja, tiesiog kaip normalus objekto failas). Be parinkčių, naudojamų visiems tikslams, "i386 PE linker" palaiko papildomas komandinės eilutės parinktis, kurios būdingos tikslui i386 PE. Parinktys, kuriose yra verčių, gali būti atskirtos nuo jų reikšmių arba tarpu arba lygiaverčiu ženklu. --add-stdcall-slapyvardis Jei nurodyta, simboliai su "stdcall" priesaga (@ nn ) bus eksportuojama kaip yra, taip pat su sufiksu. - bazinis failas failas Naudok failas kaip failo, kuriame norite išsaugoti visų perkėlimų pagrindinius adresus, reikalingus generuoti DLL su dlltool . - dll Sukurkite DLL vietoj įprasto vykdomojo failo. Taip pat galite naudoti- bendrai arba nurodykite "BIBLIOTEKA" tam tikrame ".def" faile. --enable-stdcall-fixup --disable-stdcall-fixup Jei nuoroda ras simbolį, kurio jis negali išspręsti, jis bandys atlikti "neaiškų susiejimą", ieškodamas kito apibrėžto simbolio, kuris skiriasi tik simbolio pavadinimo formatu (cdecl vs stdcall) ir išspręs šį simbolį susiejant į rungtynes. Pavyzdžiui, neapibrėžtas simbolis "_foo" gali būti susietas su funkcija "_foo @ 12", arba neapibrėžtas simbolis "_bar @ 16" gali būti susietas su funkcija "_bar". Kai linkeris tai daro, jis spausdina įspėjimą, nes paprastai jis neturėtų susieti, bet kartais importuojant iš trečiųjų šalių DLL sukurtas bibliotekas gali reikėti naudoti šią funkciją. Jei nurodysite--enable-stdcall-fixup, ši funkcija yra visiškai įjungta, o įspėjimai nėra atspausdinti. Jei nurodysite--disable-stdcall-fixupši funkcija yra išjungta ir tokie neatitikimai laikomi klaidomis. --export-visi simboliai Jei nurodoma, visi DLL kūrimo objektų globalūs simboliai bus eksportuojami DLL. Atminkite, kad tai yra numatytoji nuostata, jei kitu atveju nebūtų eksportuotų simbolių. Kai simboliai yra aiškiai eksportuojami per DEF failus arba netiesiogiai eksportuojami per funkcijų atributus, pagal numatytuosius nustatymus neeksportuojama nieko kito, nebent ši parinktis būtų pateikta. Atkreipkite dėmesį, kad simboliai "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12" ir "impure_ptr" nebus eksportuojami automatiškai. Be to, simboliai, importuoti iš kitų DLL, nebus reeksportuojami, taip pat nebus simboliai, nurodantys DLL vidinį išdėstymą, pvz., Tas, kuris prasideda "_head_" arba baigiasi "_iname". Be to, nebus eksportuojami jokie "libgcc", "libstd ++", "libmingw32" ar "crtX.o" simboliai. Simboliai, kurių pavadinimai prasideda "__rtti_" arba "__builtin_", nebus eksportuojami, norint padėti C ++ DLL. Galiausiai pateikiamas išsamus cygwin-private simbolių, kurie nėra eksportuojami, sąrašas (žinoma, tai taikoma tada, kai kuriamos DLL, skirtos Cygwin tikslams). Šie "cygwin-excludes" yra: "_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" "ir" environ ". --exclude-simboliai simbolis , simbolis ,… Nurodo simbolių sąrašą, kuris neturėtų būti automatiškai eksportuojamas. Sim