Skip to main content

Všetko o príkazu Linux / Unix: ld

Anonim

NÁZOV

ld - Použitie LD, GNU linker

SYNOPSA

ld možnosti objfile …

POPIS

ld kombinuje množstvo objektových a archívnych súborov, premiestňuje ich údaje a viaže odkazy na symboly. Obvykle je posledným krokom pri zostavovaní programu spustenield.

ld akceptuje jazykové súbory príkazu Linker, ktoré sú napísané v nadradenej verzii syntaxe Syntax jazyka Link Commander jazyka AT & T, aby poskytli jasnú a úplnú kontrolu nad procesom prepojenia.

Táto stránka mana nepopisuje príkazový jazyk; viďld v "info" alebo v príručke ld: linker GNU, kde nájdete úplné informácie o príkazovom jazyku a ďalších aspektoch linkera GNU.

Táto verziald používa univerzálne knižnice BFD na prácu s objektovými súbormi. Toto povoľujeld čítať, kombinovať a písať objektové súbory v mnohých rôznych formátoch - napríklad COFF alebo "a.out". Rôzne formáty môžu byť navzájom prepojené na vytvorenie ľubovoľného dostupného súboru objektov.

Okrem flexibilnosti je GNU linker užitočnejší ako iné linkery pri poskytovaní diagnostických informácií. Mnoho linkerov opustí výkon bezprostredne po tom, ako narazí na chybu; kedykoľvek je to možné,ld pokračuje v vykonávaní, čo vám umožňuje identifikovať ďalšie chyby (alebo v niektorých prípadoch získať výstupný súbor aj napriek chybe).

GNU linkerld má pokryť širokú škálu situácií a musí byť čo najkompatibilnejšia s ostatnými linkermi. V dôsledku toho máte veľa možností na kontrolu svojho správania.

MOŽNOSTI

Linker podporuje množstvo možností príkazového riadku, ale v skutočnosti sa niektoré z nich používajú v akomkoľvek konkrétnom kontexte. Napríklad časté používanield je prepojiť štandardné súbory Unix so štandardným podporovaným systémom Unix. Na takomto systéme odkaz na súbor "hello.o":

Robím /lib/crt0.o hello.o -lc

To hovoríld vytvoriť súbor s názvom výkon ako výsledok prepojenia súboru "/lib/crt0.o" s "hello.o" a knižnice "libc.a", ktorá bude pochádzať zo štandardných adresárov vyhľadávania. (Pozri diskusiu o-l nižšie.)

Niektoré možnosti príkazového riadkuld môže byť zadané v ľubovoľnom bode príkazového riadku. Možnosti, ktoré odkazujú na súbory, ako napríklad-l alebo-T, spôsobí čítanie súboru v bode, v ktorom sa táto možnosť zobrazí v príkazovom riadku vzhľadom na súbory objektov a ďalšie možnosti súboru. Opakovanie volieb iných súborov s iným argumentom nebude mať žiadny ďalší účinok, ani nebude mať vplyv na predchádzajúce udalosti (tie, ktoré sú ďalej vľavo na príkazovom riadku) tejto možnosti. Možnosti, ktoré môžu byť zmysluplne špecifikované viac ako raz, sú uvedené v nasledujúcich popisoch.

Argumenty bez možnosti sú objektové súbory alebo archívy, ktoré majú byť prepojené. Môžu nasledovať, predchádzať alebo byť zmiešané s možnosťami príkazového riadku, s výnimkou toho, že argument medzi objektom a jeho argumentom nemôže byť umiestnený.

Zvyčajne sa odkazovač spustí s aspoň jedným objektovým súborom, ale pomocou iných súborov môžete zadať iné formy binárnych vstupných súborov-l, -Ra príkazový jazyk skriptu. ak žiadny sú zadané binárne vstupné súbory, linker nevytvára žiadny výstup a správu vydáŽiadne vstupné súbory.

Ak linker nerozpozná formát súboru objektu, predpokladá sa, že ide o spojovací skript. Skript zadaný týmto spôsobom rozširuje hlavný linkerový skript použitý pre odkaz (buď predvolený linkerový skript alebo ten, ktorý je špecifikovaný pomocou-T). Táto funkcia dovoľuje odkazovačovi prepojiť sa so súborom, ktorý sa javí ako objekt alebo archív, ale v skutočnosti iba definuje niektoré hodnoty symbolov alebo používa "INPUT" alebo "GROUP" na načítanie ďalších objektov. Upozorňujeme, že zadanie skriptu týmto spôsobom iba rozšíri hlavný linkerový skript; Použi-T možnosť nahradiť predvolený linkerový skript.

Pre možnosti, ktorých mená sú jediné písmená, musia byť argumenty možností buď nasledovať s opčným písmom bez toho, aby zasahovali do medzery, alebo by mali byť uvedené ako samostatné argumenty bezprostredne za možnosťou, ktorá ich vyžaduje.

Pre voľby, ktorých mená sú viaceré písmená, môže pred názvom možnosti predchádzať jedno či druhé; napríklad,-trace-symbol a--trace-symbol sú ekvivalentné. Poznámka - existuje jedno výnimka z tohto pravidla. Možnosti viacerých písmen, ktoré začínajú malými písmenami "o", je možné predchádzať iba dvomi pomlčkami. To má znížiť zámenu s-o voľba. Napríklad-omagic nastaví názov výstupného súboru nakúzlo kdežto--omagic nastaví príznak NMAGIC na výstup.

Argumenty pre viaceré písmená musia byť buď oddelené od názvu možnosti znakom rovnosti, alebo musia byť uvedené ako samostatné argumenty bezprostredne za možnosťou, ktorá ich vyžaduje. Napríklad,--trace-symbol pre foo a--trace-symbol = foo sú ekvivalentné. Používajú sa jedinečné skratky názvov viacerých písmen.

Poznámka - ak je linker vyvolaný nepriamo, pomocou ovládača kompilátora (naprgcc) potom všetky predvoľby príkazového riadku linkera by mali byť predpony-Wl, (alebo čo je vhodné pre konkrétneho ovládača kompilátora) takto:

gcc -Wl, - startgroup foo.o bar.o -Wl, - koncová skupina

To je dôležité, pretože v opačnom prípade program ovládača kompilátorov môže ticho spustiť prepojovacie možnosti, čo má za následok zlý odkaz.

Tu je tabuľka generických prepínačov príkazového riadku akceptovaných GNU linkerom:

-a kľúčových slov

Táto možnosť je podporovaná pre kompatibilitu s HP / UX. kľúčových slov argument musí byť jedným z reťazcovarchív, zdieľaná, aleboštandardné. -aarchive je funkčne ekvivalentná-Bstatica ostatné dve kľúčové slová sú funkčne ekvivalentné-Bdynamic, Táto možnosť sa môže použiť niekoľkokrát.

-A architektúra

--architecture = architektúra

V súčasnej verziild, táto možnosť je užitočná len pre architektúry rodiny Intel 960. V tomld konfigurácia, architektúra argument identifikuje konkrétnu architektúru v rodine 960, umožňuje niektoré bezpečnostné opatrenia a modifikuje cestu vyhľadávania knižnice archívu.

Budúce vydaniald môže podporovať podobné funkcie pre iné rodiny architektúry.

-b input-formát

--format = input-formát

ld môže byť nakonfigurovaný tak, aby podporoval viac ako jeden druh súboru objektov. Ak tvojld je nakonfigurovaný týmto spôsobom, môžete použiť-b možnosť určiť binárny formát súborov vstupných objektov, ktoré sa nachádzajú na tejto príkazovej riadke. Aj keďld je nakonfigurovaný tak, aby podporoval formáty alternatívnych objektov, zvyčajne to nemusíte špecifikovať akold by mali byť nakonfigurované tak, aby očakávali ako predvolený vstupný formát najbežnejší formát na každom počítači. input-formát je textový reťazec, názov konkrétneho formátu podporovaného knižnicami BFD. (Môžete zobraziť dostupné binárne formáty pomocouobjdump -i.)

Túto možnosť použite, ak prepájate súbory s nezvyčajným binárnym formátom. Môžete tiež použiť-b prepínať formáty explicitne (pri prepájaní objektových súborov rôznych formátov), ​​vrátane-b input-formát pred každou skupinou objektových súborov v určitom formáte.

Predvolený formát je prevzatý z premennej prostredia "GNUTARGET".

Môžete tiež definovať vstupný formát zo skriptu pomocou príkazu "TARGET";

-c MRI-commandfile

--mri-script = MRI-commandfile

Pre kompatibilitu s linkermi produkovanými MRI,ld akceptuje súbory skriptov napísané v alternatívnom, obmedzenom príkazovom jazyku popísanom v sekcii Súbory kompatibilných skriptov MRI v dokumentácii GNU ld. Predstavte súbory skriptov MRI s touto možnosťou-c; Použi-T možnosť spustiť linker skripty napísané vo všeobecnomld skriptovací jazyk. ak MRI-cmdfile neexistuje,ldhľadá to v adresároch špecifikovaných ľubovoľným-L možnosti.

-d

dc

-dp

Tieto tri možnosti sú ekvivalentné. viaceré formy sú podporované z dôvodu kompatibility s inými linkermi. Priradia priestor bežným symbolom, aj keď je špecifikovaný premiestniteľný výstupný súbor (s-r). Príkaz skriptu "FORCE_COMMON_ALLOCATION" má rovnaký účinok.

-e vstup

--entry = vstup

použitie vstup ako explicitný symbol začiatočného spustenia vášho programu namiesto predvoleného vstupného bodu. Ak nie je uvedený žiaden symbol vstup , linker sa pokúsi analyzovať vstup ako číslo a použite to ako vstupnú adresu (číslo bude interpretované v základni 10, môžete použiť vedúce0x pre základňu 16 alebo pre vedenie0 pre základňu 8).

-E

--export dynamické

Pri vytváraní dynamicky prepojeného spustiteľného súboru pridajte všetky symboly do tabuľky dynamických symbolov. Tabuľka dynamických symbolov je súbor symbolov, ktoré sú viditeľné z dynamických objektov v čase spustenia.

Ak túto možnosť nepoužívate, tabuľka dynamických symbolov bude normálne obsahovať len tie symboly, na ktoré odkazuje nejaký dynamický objekt uvedený v odkazu.

Ak použijete "dlopen" na načítanie dynamického objektu, ktorý sa musí vrátiť späť k symbolom definovaným programom, namiesto nejakého iného dynamického objektu, budete pravdepodobne musieť túto možnosť použiť pri prepojení samotného programu.

Môžete tiež použiť skript verzie, ak chcete, aké symboly by ste mali pridať do tabuľky dynamických symbolov, ak to podporuje výstupný formát. Pozrite si popisversion-script v @ ref {version}.

-EB

Prepojte veľké endiánske objekty. To ovplyvňuje predvolený výstupný formát.

-el

Prepojte malé endiánske objekty. To ovplyvňuje predvolený výstupný formát.

-f

--auxiliary názov

Pri vytváraní zdieľaného objektu ELF nastavte interné pole DT_AUXILIARY na zadaný názov. Toto informuje dynamický linker, že tabuľka symbolov zdieľaného objektu by sa mala použiť ako pomocný filter na tabuľke symbolov zdieľaného objektu názov .

Ak neskôr spojíte program s týmto objektom filtra, potom pri spustení programu sa dynamický linker zobrazí pole DT_AUXILIARY. Ak dynamický linker vyrieši akékoľvek symboly z filtračného objektu, najskôr skontroluje, či je v zdieľanom objekte definícia názov , Ak existuje, použije sa namiesto definície v objekte filtra. Zdieľaný objekt názov nemusí existovať. Tak zdieľaný objekt názov môže byť použitý na poskytnutie alternatívnej implementácie určitých funkcií, možno pre ladenie alebo pre strojovo špecifické výkony.

Táto možnosť môže byť zadaná viac ako raz. Položky DT_AUXILIARY budú vytvorené v poradí, v akom sa zobrazia na príkazovom riadku.

-F názov

--filter názov

Pri vytváraní zdieľaného objektu ELF nastavte interné pole DT_FILTER na zadaný názov. Toto informuje dynamický linker, že tabuľka symbolov vytvoreného zdieľaného objektu by sa mala použiť ako filter na tabuľke symbolov zdieľaného objektu názov .

Ak neskôr spojíte program s týmto objektom filtra, potom pri spustení programu dynamický linker zobrazí pole DT_FILTER. Dynamický linker vyrieši symboly podľa tabuľky symbolov objektu filtra ako obvykle, ale skutočne odkazuje na definície nachádzajúce sa v zdieľanom objekte názov , Filtračný objekt sa teda môže použiť na výber podmnožiny symbolov poskytnutých objektom názov .

Niektorí starší linkeri použili-F v rámci zostavy nástrojovej zostavy pre špecifikovanie formátu objektového súboru pre vstupné aj výstupné objektové súbory. GNU linker používa na tento účel iné mechanizmy:-b, --format, --oformat príkaz "TARGET" v linkerových skriptoch a premenná prostredia "GNUTARGET". GNU linker bude ignorovať-F keď nevytvoríte zdieľaný objekt ELF.

-fini názov

Pri vytváraní spustiteľného alebo zdieľaného objektu ELF zavolajte NAME, keď sa spustitelný alebo zdieľaný objekt uvoľní, nastavením DT_FINI na adresu funkcie. Predvolene odkazovač používa ako funkciu na volanie funkciu "_fini".

-g

Ignorované. Za predpokladu kompatibility s inými nástrojmi.

-G hodnota

--gpsize = hodnota

Nastavte maximálnu veľkosť objektov, ktoré sa majú optimalizovať, pomocou registra GP veľkosť , To je zmysluplné len pre formáty objektových súborov, ako napríklad MIPS ECOFF, ktoré podporujú umiestňovanie veľkých a malých objektov do rôznych častí. Toto sa ignoruje pre iné formáty súborov objektov.

-h názov

-soname = názov

Pri vytváraní zdieľaného objektu ELF nastavte interné pole DT_SONAME na zadaný názov. Keď je spustiteľný súbor prepojený so zdieľaným objektom, ktorý má pole DT_SONAME, potom sa po spustení spustiteľného súboru pokúsi dynamický linker načítať zdieľaný objekt zadaný poľom DT_SONAME namiesto použitia názvu súboru daného odkazovači.

-i

Vykonajte prírastkové prepojenie (rovnako ako možnosť-r).

-init názov

Pri vytváraní spustiteľného alebo zdieľaného objektu ELF zavolajte NAME, keď je spustený spustiteľný alebo zdieľaný objekt, nastavením DT_INIT na adresu funkcie. Predvolene odkazovač používa funkciu "_init" ako funkciu na volanie.

-l archív

--library = archív

Pridať archívny súbor archív do zoznamu súborov, ktoré chcete prepojiť. Táto možnosť sa môže použiť niekoľkokrát.ld bude vyhľadávať v jeho zozname pre výskyty "libarchive.a" pre každý archív špecifikované.

Na systémoch, ktoré podporujú zdieľané knižnice,ld môže tiež vyhľadávať knižnice s rozšíreniami inými než ".a". Konkrétne, na systémoch ELF a SunOS,ld bude vyhľadávať adresár pre knižnicu s príponou ".so" predtým, ako vyhľadáte jeden s príponou ".a". Podľa konvencie označuje rozšírenie ".so" zdieľanú knižnicu.

Linker vyhľadá archív len raz, na mieste, kde je zadané na príkazovom riadku. Ak archív definuje symbol, ktorý nebol definovaný v niektorom objekte, ktorý sa objavil pred archívom na príkazovom riadku, linker bude obsahovať príslušný súbor (y) z archívu. Avšak nedefinovaný symbol v objekte, ktorý sa objaví neskôr na príkazovom riadku, nespôsobí, že linker znovu vyhľadá archív.

Pozrite si-( voľba spôsobu, ako prinútiť odkazovač vo vyhľadávaní archívov viackrát.

Rovnaký archív môžete uviesť na príkazovom riadku viackrát.

Tento typ vyhľadávania archívov je štandardný pre spojky Unix. Ak však používateld onAIX, všimnite si, že sa líši od správania spojovacej jednotky AIX.

-L searchdir

--library-path = searchdir

Pridať cestu searchdir do zoznamu ciestld bude hľadať archívne knižnice ald riadiace skripty. Túto možnosť môžete používať niekoľkokrát. Adresáre sa vyhľadávajú v poradí, v akom sú zadané na príkazovom riadku. Adresy zadané na príkazovom riadku sa vyhľadávajú pred štandardnými adresármi. všetko-L možnosti sa vzťahujú na všetkých-l možnosti, bez ohľadu na poradie, v ktorom sa tieto možnosti zobrazujú.

ak searchdir začína znakom "=", potom "=" bude nahradený znakom sysroot prefix , cesta špecifikovaná pri nakonfigurovaní linkera.

Predvolená sada vyhľadávaných ciest (bez špecifikácie s-L) závisí od toho, ktorý režim emulácield používa av niektorých prípadoch aj spôsob, akým bol nakonfigurovaný.

Cesta môže byť tiež zadaná v prepojovacom skripte s príkazom "SEARCH_DIR". Adresáre zadané týmto spôsobom sa vyhľadávajú v bode, v ktorom sa v príkazovom riadku objaví odkazovací skript.

-m emulácia

Napodobniť emulácia mostík. Môžete zobraziť dostupné emulácie pomocou tlačidla--verbose alebo-Vmožnosti.

Ak-m voľba sa nepoužíva, emulácia sa prevezme z premennej prostredia "LDEMULATION", ak je definovaná.

V opačnom prípade predvolená emulácia závisí od toho, ako bol nakonfigurovaný linker.

-M

--print-máp

Vytlačte mapu odkazov na štandardný výstup. Mapa odkazov poskytuje informácie o prepojení, vrátane nasledujúcich informácií:

*

Kde sú objektové súbory a symboly mapované do pamäte.

*

Ako sú pridelené bežné symboly.

*

Všetci členovia archívu zahrnutí do odkazu, s uvedením symbolu, ktorý spôsobil, že bol archív členom prinesený.

-n

--nmagic

Vypnite zarovnanie stránok a označte výstup ako "NMAGIC", ak je to možné.

-N

--omagic

Nastavte sekcie textu a údajov tak, aby boli čitateľné a zapisovateľné. Tiež nie je zarovnávať dátový segment so stránkami a zakázať prepojenie so zdieľanými knižnicami. Ak výstupný formát podporuje štýl magie Unixu, označte výstup ako "OMAGIC".

--no-omagic

Táto možnosť neguje väčšinu účinkov-N voľba. Nastavuje textovú sekciu iba na čítanie a núti dátový segment na zarovnanie strán. Poznámka - táto možnosť neumožňuje prepojenie so zdieľanými knižnicami. použitie-Bdynamic pre to.

-o výkon

--output = výkon

použitie výkon ako názov pre program, ktorý produkujeld; ak táto možnosť nie je zadaná, názov a.out sa používa štandardne. Príkaz skriptu "OUTPUT" môže tiež špecifikovať názov výstupného súboru.

-O hladina

ak hladina je numerická hodnota väčšia ako nulald optimalizuje výstup. Toto môže trvať podstatne dlhšie, a preto by malo byť pravdepodobne povolené len pre poslednú binárnu.

-q

--emit-relocs

Ponechajte sekcie a obsah premiestnenia v plne prepojených súboroch s exececutables. Nástroj na analýzu odkazov a optimalizačné nástroje môžu tieto informácie potrebovať, aby mohli vykonať správne úpravy spustiteľných súborov. Výsledkom sú väčšie spustiteľné súbory.

Táto možnosť je v súčasnosti podporovaná iba na platformách ELF.

-r

--relocateable

Generujte premiestniteľný výstup --- t.j. vygenerujte výstupný súbor, ktorý môže zasa slúžiť ako vstupld, Toto sa často nazýva čiastočné prepojenie , Ako vedľajší efekt v prostrediach, ktoré podporujú štandardné magické čísla systému Unix, táto možnosť tiež nastavuje magické číslo výstupného súboru na hodnotu "OMAGIC". Ak táto možnosť nie je zadaná, vytvorí sa absolútny súbor. Pri prepájaní programov C ++ túto možnosť nebude vyriešiť odkazy na konštruktérov; na to, použiteUR.

Ak vstupný súbor nemá rovnaký formát ako výstupný súbor, čiastočné prepojenie je podporované iba vtedy, ak tento vstupný súbor neobsahuje žiadne presuny. Rôzne výstupné formáty môžu mať ďalšie obmedzenia; napríklad niektoré formáty založené na "a.out" nepodporujú čiastočné prepojenie so vstupnými súbormi v iných formátoch.

Táto možnosť robí to isté ako-i.

-R názov súboru

--just symbolov = názov súboru

Prečítajte si názvy symbolov a ich adresy názov súboru , ale nepresúvajte ho ani ho nezahrnujte do výstupu. To umožňuje, aby váš výstupný súbor symbolicky odkazoval na absolútne miesta pamäte definované v iných programoch. Túto možnosť môžete používať viackrát.

Pre kompatibilitu s inými ELF linkeri, ak-R potom nasleduje názov adresára, nie názov súboru, je považovaný za-rpath voľba.

-s

--strip-all

Vynechajte všetky informácie o symboloch z výstupného súboru.

-S

--strip-debug

Vynechajte informácie o symboloch debuggeru (ale nie všetky symboly) z výstupného súboru.

-t

--trace

Vytlačte názvy vstupných súborov akold spracováva ich.

-T Soubor_skriptu

--script = Soubor_skriptu

použitie Soubor_skriptu ako spojovací skript. Tento skript nahradíldje to predvolený linker skript (skôr než pridávať do), tak commandfile musí špecifikovať všetko potrebné na opis výstupného súboru. ak Soubor_skriptu v súčasnom adresári neexistuje, ld hľadá v adresároch špecifikovaných ľubovoľnými predchádzajúcimi-L možnosti. násobok-T akumulácie.

-u symbol

--undefined = symbol

sila symbol ktorý sa má zadávať vo výstupnom súbore ako nedefinovaný symbol. Toto môže napríklad spúšťať prepojenie ďalších modulov zo štandardných knižníc.-u sa môže zopakovať s inými argumentmi pre zadanie ďalších nedefinovaných symbolov. Táto možnosť je ekvivalentná príkazu "EXTERN" linker script.

UR

Pri iných programoch ako C ++ je táto voľba ekvivalentná-r: generuje premiestniteľný výstup - t.j. výstupný súbor, ktorý môže zase slúžiť ako vstupld, Pri prepájaní programov C ++,UR robí vyriešiť odkazy na konštruktérov, na rozdiel od nich-r, Nepoužíva saUR na súbory, s ktorými boli sami prepojenéUR; akonáhle bola postavená konštrukčná tabuľka, nie je možné ju pridať. použitieUR iba pre posledný čiastočný odkaz a-r pre ostatných.

--unique = ČASŤ

Vytvorí samostatnú výstupnú sekciu pre každú zodpovedajúcu vstupnú sekciu ČASŤ , alebo ak je voliteľný zástupný znak ČASŤ chýba argument pre každú sekciu vstupu do siroty. Sirotská sekcia nie je konkrétne uvedená v spojovacom skripte. Túto možnosť môžete použiť na príkazovom riadku viackrát; Zabraňuje normálnemu zlúčovaniu vstupných častí s rovnakým názvom, priradením priradených výstupných sekcií do skriptov spojovníkov.

-v

--version

-V

Zobrazte číslo verzie preld,-V Voľba tiež uvádza podporované emulácie.

-X

--discard-all

Odstráňte všetky miestne symboly.

-X

--discard-miestna

Odstráňte všetky dočasné miestne symboly. Pre väčšinu cieľov sú to všetky miestne symboly, ktorých názvy začínajúL.

-y symbol

--trace-symbol = symbol

Vytlačte názov každého prepojeného súboru, v ktorom sa nachádza symbol Objaví. Táto možnosť môže byť poskytnutá niekoľkokrát. Na mnohých systémoch je potrebné predbežne podčiarknuť.

Táto možnosť je užitočná, ak vo svojom prepojení máte neurčený symbol, ale neviete, odkiaľ odkaz pochádza.

Y cesta

pridať cesta na predvolenú cestu vyhľadávania knižnice. Táto možnosť existuje pre kompatibilitu Solaris.

-z kľúčových slov

Rozpoznané kľúčové slová sú "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "now", " ". Ostatné kľúčové slová sú ignorované pre kompatibilitu Solaris. "initfirst" označuje objekt, ktorý sa má inicializovať najskôr pri behu pred akýmikoľvek inými objektmi."interpose" označuje objekt, ktorý sa v tabuľke symbolov nachádza pred všetkými symbolmi, ale primárnym spustiteľným súborom, "loadfltr" označuje objekt, ktorý má byť spracovaný ihneď počas spustenia "nodefaultlib" označuje objekt, ktorý ignoruje vyhľadávanie závislostí tohto objektu všetky predvolené cesty vyhľadávania knižnice. "nodelete" označuje, že objekt by nemal byť zaťažený pri behu. "nodlopen" označuje objekt, ktorý nie je k dispozícii pre "dlopen". "nodump" označuje, že objekt nemôže byť zlikvidovaný "dldump". "teraz" označí objekt neviazanou väzbou runtime. "pôvod" znamená, že objekt môže obsahovať $ ORIGIN. "defs" nepovoľuje nedefinované symboly. "muldefs" umožňuje viacero definícií. "combreloc" kombinuje viacero úsekov premiestňovania a triedi ich tak, aby umožnili vyhľadanie dynamického vyhľadávania cache.

"nocombreloc" zakáže kombináciu viacerých častí premiestňovania. "nocopyreloc" zabraňuje výrobe kopírovania.

-( archív -)

--start-skupina archív --end-skupina

archív by mal byť zoznam archívnych súborov. Môžu to byť buď explicitné názvy súborov, alebo-lmožnosti.

Zadané archívy sa vyhľadávajú opakovane, kým sa nevytvoria nové nedefinované referencie. Za normálnych okolností sa archív vyhľadá iba raz v poradí, ktoré je zadané na príkazovom riadku. Ak je v tomto archíve potrebný symbol na vyriešenie nedefinovaného symbolu, na ktorý odkazuje objekt v archíve, ktorý sa objaví neskôr na príkazovom riadku, linker by tento odkaz nemohol vyriešiť. Zoskupením archívov sa všetky vyhľadávajú opakovane, kým sa nevyriešia všetky možné odkazy.

Použitie tejto možnosti má výrazné výkonové náklady. Najlepšie je používať iba vtedy, keď existujú nevyhnutné kruhové odkazy medzi dvomi alebo viacerými archívmi.

--accept-neznámy-input-oblúk

--no-accept-neznámy-input-oblúk

Povie linkeru, aby prijal vstupné súbory, ktorých architektúra sa nedá rozpoznať. Predpokladom je, že používateľ vie, čo robia, a zámerne sa chce spojiť v týchto neznámych vstupných súboroch. Toto bolo predvolené správanie odkazovača pred vydaním 2.14. Predvoleným správaním z vydania 2.14 je odmietnutie takýchto vstupných súborov a tak--accept-neznámy-input-oblúk možnosť obnovenia starého správania.

-assert kľúčových slov

Táto možnosť sa ignoruje pre kompatibilitu so systémom SunOS.

-Bdynamic

-D Y

-call_shared

Odkaz na dynamické knižnice. Toto je zmysluplné len na platformách, pre ktoré sú podporované zdieľané knižnice. Táto možnosť je štandardne na týchto platformách. Rôzne varianty tejto možnosti sú pre kompatibilitu s rôznymi systémami. Túto možnosť môžete používať viackrát na príkazovom riadku: ovplyvňuje vyhľadávanie knižnice-l možnosti, ktoré nasledujú.

-Bgroup

Nastavte príznak "DF_1_GROUP" v položke "DT_FLAGS_1" v dynamickej časti. To spôsobí, že spojovací modul runtime spracováva vyhľadávania v tomto objekte a jeho závislosti sa budú vykonávať iba vo vnútri skupiny.-no-nedefinované je implicitná. Táto možnosť má zmysel len pre platformy ELF, ktoré podporujú zdieľané knižnice.

-Bstatic

-dn

-non_shared

-static

Neväzujte na zdieľané knižnice. Toto je zmysluplné len na platformách, pre ktoré sú podporované zdieľané knižnice. Rôzne varianty tejto možnosti sú pre kompatibilitu s rôznymi systémami. Túto možnosť môžete používať viackrát na príkazovom riadku: ovplyvňuje vyhľadávanie knižnice-l možnosti, ktoré nasledujú.

-Bsymbolic

Pri vytváraní zdieľanej knižnice viažete odkazy na globálne symboly na definíciu v rámci zdieľanej knižnice, ak existuje. Za normálnych okolností je možné, že program prepojený so zdieľanou knižnicou nahradí definíciu v zdieľanej knižnici. Táto možnosť má zmysel len pre platformy ELFplatformy, ktoré podporujú zdieľané knižnice.

--check rezy

--no-check-profily

Pýta sa linker nie skontrolovať adresy sekcií po ich priradení, aby zistili, či nejaké prekrytia. Normálne linker vykoná túto kontrolu a ak zistí akékoľvek prekrývanie, vytvorí vhodné chybové hlásenia. Linker vie o tom a upravuje rozdiely v prekrytí. Predvolené správanie sa môže obnoviť pomocou prepínača príkazového riadka--check rezy.

--cref

Vytvorte krížovú referenčnú tabuľku. Ak sa vytvára súbor mapovania odkazov, krížová referenčná tabuľka sa vytlačí do súboru mapy. V opačnom prípade sa vytlačí na štandardný výstup.

Formát tabuľky je zámerne jednoduchý, takže v prípade potreby môže byť ľahko spracovaný skriptom. Symboly sú vytlačené, zoradené podľa názvu. Pre každý symbol je uvedený zoznam názvov súborov. Ak je definovaný symbol, prvý uvedený súbor je umiestnenie definície. Ostatné súbory obsahujú odkazy na symbol.

-no-definovať-common

Táto možnosť zabraňuje priradeniu adries k bežným symbolom. Príkaz skriptu "INHIBIT_COMMON_ALLOCATION" má rovnaký účinok.

-no-definovať-common možnosť oddeliť rozhodnutie priradiť adresy k bežným symbolom z výberu výstupného typu súboru; inak typ neprenosného výstupu núti priradiť adresy bežným symbolom. Použitím-no-definovať-common umožňuje spoločným symbolom odkazovaným zo zdieľanej knižnice priradiť adresy iba v hlavnom programe. Tým sa eliminuje nepoužívaný duplicitný priestor v zdieľanej knižnici a tiež sa zabráni akémukoľvek zmätku pri riešení nesprávneho duplikovania, ak existuje veľa dynamických modulov so špecializovanými vyhľadávacími cestami na rozlíšenie symbolov behu.

--defsym symbol = vyjadrenie

Vytvorte vo výstupnom súbore globálny symbol, ktorý obsahuje absolútnu adresu danú hodnotou vyjadrenie , Túto možnosť môžete používať toľkokrát, koľko je potrebné na definovanie viacerých symbolov v príkazovom riadku. Obmedzená forma aritmetiky je podporovaná pre vyjadrenie v tomto kontexte: môžete pridať hexadecimálnu konštantu alebo názov existujúceho symbolu alebo použiť "+" a "-" na pridanie alebo odčítanie hexadecimálnych konštánt alebo symbolov. Ak potrebujete viac prepracované výrazy, zvážte použitie príkazového jazyka linkera zo skriptu. Poznámka: nesmie byť medzi nimi biele miesto symbol , označenie rovnosti (``=") a vyjadrenie .

--demangle = štýl

--no-demangle

Tieto možnosti určujú, či sa v chybových správach a iných výstupoch majú zameniť názvy symbolov. Keď sa linker má pomyštiť, pokúša sa prezentovať názvy symbolov čitateľným spôsobom: prerušuje vedúce podčiarknutia, ak sú použité vo formáte súboru objektu a konvertuje názvy symbolov C ++ na čitateľné mená. Rôzne kompilátory majú rôzne štýly manglingu. Voliteľný argument štýlu vykresľovania môžete použiť na výber vhodného štýlu prekladania pre kompilátora. Spojovací článok sa štandardne zmieta s výnimkou premennej prostrediaCOLLECT_NO_DEMANGLE je nastavená. Tieto možnosti sa môžu použiť na prekonanie predvoleného nastavenia.

--dynamic-linker súbor

Zadajte názov dynamického odkazovača. Toto je zmysluplné len pri generovaní dynamicky spárovaných spustiteľných súborov ELF. Predvolený dynamický linker je spravidla správny; nepoužívajte to, ak neviete, čo robíte.

--embedded-relocs

Táto možnosť je zmysluplná iba pri prepojení MIPS vloženého PIC kódu generovaného možnosťou -membedded-pic na GNU kompilátor a assembler. Spôsobí, že linker vytvorí tabuľku, ktorá sa môže používať pri behu, aby sa premiestnili všetky údaje, ktoré boli staticky inicializované na hodnoty ukazovateľov. Viac podrobností nájdete v kóde testsuite / ld-empic.

--fatal-upozornenia

Všetky výstrahy považujte za chyby.

--force-exe, prípona

Uistite sa, že výstupný súbor má príponu .exe.

Ak úspešne vytvorený plne prepojený výstupný súbor nemá príponu ".exe" alebo ".dll", táto možnosť núti linker skopírovať výstupný súbor na rovnaké meno s príponou ".exe". Táto možnosť je užitočná pri používaní nemodifikovaných makefile Unixu na hostiteľovi systému Microsoft Windows, pretože niektoré verzie systému Windows nebudú zobrazovať obrázok, pokiaľ sa nekončí príponou ".exe".

--no-GC-profily

--gc rezy

Povoliť zbieranie odpadu nepoužívaných vstupných sekcií. Tento parameter sa ignoruje na ciele, ktoré túto možnosť nepodporujú. Táto možnosť nie je kompatibilná s-r, ani by sa nemalo používať s dynamickým prepojením. Predvolené správanie (nevykonanie tejto zbierky odpadkov) sa dá obnoviť zadaním--no-GC-profily na príkazovom riadku.

--Pomoc

Vytlačte súhrn možností príkazového riadka na štandardný výstup a výstup.

--target-help

Vytlačte súhrn všetkých možností špecifických pre cieľ na štandardnom výstupe a ukončení.

-Mapa mapfile

Vytlačte mapu odkazu na súbor mapfile , Pozrite si popis súboru-M vyššie.

--no-keep-pamäť

ld normálne optimalizuje rýchlosť pri využití pamäte ukladaním do pamäte tabuľky symbolov vstupných súborov. Táto možnosť hovoríld namiesto toho optimalizovať pre využitie pamäte, a to tak, že v prípade potreby znovu zadáte tabuľky symbolov. Toto môže byť potrebné, akld vyčerpá pamäťový priestor pri prepojení veľkého spustiteľného súboru.

-no-nedefinované

-z defs

Normálne pri vytváraní ne-symbolickej zdieľanej knižnice sú povolené nedefinované symboly, ktoré sa nechajú vyriešiť pomocou načítača na základe behu. Tieto možnosti nepovoľujú takéto nedefinované symboly.

--allow-viac definícia

-z muldefs

Normálne, keď je symbol definovaný viackrát, odkazovač oznámi fatálnu chybu. Tieto možnosti umožňujú niekoľko definícií a použije sa prvá definícia.

--allow-shlib-nedefinované

Povoliť nedefinované symboly v zdieľaných objektoch, aj keď je nastavený --no-nedefinovaný. Čistým výsledkom bude, že nedefinované symboly v bežných objektoch ešte spôsobia chybu, ale nedefinované symboly v zdieľaných objektoch budú ignorované. Implementácia no_undefined predpokladá, že runtime linker sa zadusí na nedefinované symboly. Existuje však aspoň jeden systém (BeOS), v ktorom sú nedefinované symboly v zdieľaných knižniciach normálne, pretože ich jadro ich pri nahrávaní nahradí tým, ktoré funkcie sú pre aktuálnu architektúru najvhodnejšie. I.E. dynamicky vyberte príslušnú funkciu memset. Zdá sa, že je tiež normálne, aby zdieľané knižnice HPPA mali neurčené symboly.

-no-nedefinované-verzia

Normálne, ak má symbol nedefinovanú verziu, odkazovač ju ignoruje. Táto možnosť nepovoľuje symboly s nedefinovanou verziou a namiesto toho sa vynesie fatálna chyba.

--no-warn-nesúlad

normálneld zobrazí sa chyba, ak sa pokúsite spojiť vstupné súbory, ktoré sú z nejakého dôvodu nesprávne, možno preto, že boli zostavené pre rôzne procesory alebo pre rôzne endiannesses. Táto možnosť hovoríld že by mala ticho umožniť takéto možné chyby. Táto možnosť by sa mala používať iba s opatrnosťou, v prípade, že ste vykonali nejaké špeciálne kroky, ktoré zabezpečia, že chyby spojovníka sú nevhodné.

--no-whole-archív

Vypnite efekt--whole archív možnosť pre nasledujúce archívne súbory.

--noinhibit-exec

Zachovajte spustiteľný výstupný súbor vždy, keď je stále použiteľný.Zvyčajne linker nebude produkovať výstupný súbor, ak narazí na chyby počas procesu prepojenia; opustí bez napísania výstupného súboru, keď vydá nejakú chybu.

-nostdlib

Na príkazovom riadku sú explicitne zadané iba adresáre knižnice vyhľadávania. Adresáre knižníc zadané v skriptoch spojovníkov (vrátane skriptov spojovníkov uvedených na príkazovom riadku) sa ignorujú.

--oformat výstupný formát

ld môže byť nakonfigurovaný tak, aby podporoval viac ako jeden druh súboru objektov. Ak tvojld je nakonfigurovaný týmto spôsobom, môžete použiť--oformat možnosť určiť binárny formát súboru výstupného objektu. Aj keďld je nakonfigurovaný tak, aby podporoval formáty alternatívnych objektov, zvyčajne to nemusíte špecifikovať akold by mala byť nakonfigurovaná tak, aby produkovala ako predvolený výstupný formát najbežnejší formát na každom počítači. výstupný formát je textový reťazec, názov konkrétneho formátu podporovaného knižnicami BFD. (Môžete zobraziť dostupné binárne formáty pomocouobjdump -i.) Príkaz skriptu "OUTPUT_FORMAT" môže tiež špecifikovať výstupný formát, ale táto voľba ho prepíše.

-qmagic

Táto možnosť sa ignoruje pre kompatibilitu systému Linux.

-Qy

Táto možnosť sa ignoruje pre kompatibilitu SVR4.

--relax

Možnosť s efektmi závislými od stroja. Táto možnosť je podporovaná iba na niekoľkých cieľoch.

Na niektorých platformách,--relax , ktorá vykoná globálne optimalizácie, ktoré sa stanú možnými, keď linker vyrieši adresovanie v programe, napríklad uvoľnenie režimov adresy a syntetizovanie nových pokynov v súbore výstupného objektu.

Na niektorých platformách môžu tieto globálne optimalizácie prepojenia času robiť symbolické ladenie výsledného spustiteľného súboru nemožné. Je známe, že to je prípad rodiny procesorov Matsushita MN10200 a MN10300.

Na platformách, kde to nie je podporované,--relax je akceptovaná, ale ignorovaná.

--retain symbolov-file názov súboru

udržať iba symboly uvedené v súbore názov súboru , vyradenie všetkých ostatných. názov súboru je jednoducho plochý súbor s jedným symbolovým názvom na riadok. Táto možnosť je obzvlášť užitočná v prostrediach (ako napríklad VxWorks), kde sa postupne nahromadí veľká globálna tabuľka symbolov, aby sa ušetrila pamäť na spustenie.

--retain symbolov-file robí nie zrušte nedefinované symboly alebo symboly potrebné na premiestnenie.

Môžete zadať iba--retain symbolov-file raz v príkazovom riadku. Prepisuje to-s a-S.

-rpath dir

Pridajte adresár do cesty vyhľadávania knižnice runtime. Toto sa používa pri prepojení ELFexecutable so zdieľanými objektmi. všetko-rpath argumenty sú zjednotené a odovzdané do runtime linker, ktorý ich používa na lokalizáciu zdieľaných objektov za behu.-rpath voľba sa používa aj pri vyhľadávaní zdieľaných objektov, ktoré sú potrebné v zdieľaných objektoch výslovne zahrnutých do odkazu; pozri opis-rpath-link voľba. ak-rpath sa nepoužíva pri spájaní spustiteľného súboru ELF, bude obsah premennej prostredia "LD_RUN_PATH" použitý, ak je definovaný.

-rpath môže byť tiež použitá na SunOS. Podľa predvoleného nastavenia v službe SunOS linker vytvorí zo všetkých šablón vyhľadávania po spustení-L možnosti, ktoré sú uvedené. Ak-rpath , cesta vyhľadávania po spustení bude vytvorená výhradne pomocou-rpath možnosti ignorovať-Lmožnosti. To môže byť užitočné pri použití gcc, ktorý pridáva veľa-L možnosti, ktoré môžu byť pripojené k súborovým systémom na systéme NFS.

Pre kompatibilitu s inými ELF linkeri, ak-R potom nasleduje názov adresára, nie názov súboru, je považovaný za-rpath voľba.

-rpath-link DIR

Pri používaní ELF alebo SunOS môže jedna zdieľaná knižnica vyžadovať inú. K tomu dochádza, ak odkaz "ld-shared" obsahuje zdieľanú knižnicu ako jeden zo vstupných súborov.

Keď sa odkazovač stretne s takouto závislosťou pri vykonávaní nezdieľaného odkazu, ktorý sa nedá premiestniť, automaticky sa pokúsi nájsť požadovanú zdieľanú knižnicu a zahrnúť ju do odkazu, ak nie je explicitne zahrnutý. V takom prípade-rpath-link voľba určuje prvú sadu adresárov na vyhľadávanie.-rpath-link môže určiť poradie názvov adresárov buď zadaním zoznamu názvov oddelených dvojbodkami alebo opakovaným zobrazením.

Táto voľba by sa mala používať s opatrnosťou, pretože prepisuje vyhľadávaciu cestu, ktorá bola ťažko kompilovaná do zdieľanej knižnice. V takomto prípade je možné neúmyselne použiť inú cestu vyhľadávania, než by robila linker runtime.

Odkazovač používa nasledujúce vyhľadávacie cesty na vyhľadanie požadovaných zdieľaných knižníc.

1.

Všetky adresáre zadané používateľom-rpath-link možnosti.

2.

Všetky adresáre zadané používateľom-rpath možnosti. Rozdiel medzi-rpath a-rpath-link je to adresáre špecifikované-rpath možnosti sú zahrnuté do spustiteľného súboru a používané pri behu, zatiaľ čo-rpath-link možnosť je účinná len v čase spojenia. Je to len pre natívne linker.

3.

Na systéme ELF, ak-rpath a "rpath-link" neboli použité možnosti vyhľadávania obsahu premennej prostredia "LD_RUN_PATH". Je to len pre natívne linker.

4.

Na SunOS, ak-rpath nebola použitá voľba, vyhľadať ľubovoľné adresáre zadané pomocou-L možnosti.

5.

Pre natívny linker obsah premennej prostredia "LD_LIBRARY_PATH".

6.

Pre doménový linker ELF sa vyhľadávajú adresáre v priečinku "DT_RUNPATH" alebo "DT_RPATH" zdieľanej knižnice pre zdieľané knižnice, ktoré táto aplikácia potrebuje.Položky "DT_RPATH" sa ignorujú, ak existujú položky "DT_RUNPATH".

7.

Predvolené adresáre, zvyčajne / lib a / Usr / lib .

8.

Pre natívny linker na systéme ELF, ak je súbor /etc/ld.so.conf existuje zoznam adresárov nachádzajúcich sa v tomto súbore.

Ak sa požadovaná zdieľaná knižnica nenachádza, odkazovač vydá varovanie a pokračuje v prepojení.

--shared

-Bshareable

Vytvorenie zdieľanej knižnice. Toto je v súčasnosti podporované iba na platformách ELF, XCOFF a SunOS. V systéme SunOS linker automaticky vytvorí zdieľanú knižnicu-e voľba sa nepoužíva a na odkaz sú neurčené symboly.

--sort-common

Táto možnosť hovoríld roztriediť bežné symboly podľa veľkosti, keď ich umiestni do príslušných výstupných sekcií. Najprv prídete všetky symboly jedného bajtu, potom všetky dva bajty, potom všetky štyri bajty a potom všetko ostatné. Toto má zabrániť rozdielom medzi symbolmi v dôsledku obmedzení zarovnania.

--split-by-file veľkosť

Podobný--split-by-RELOCA ale vytvorí novú výstupnú sekciu pre každý vstupný súbor, keď veľkosť je dosiahnutá. veľkosť predvolená veľkosť 1, ak nie je zadaná.

--split-by-reloc počítať

Snaží sa vytvoriť ďalšie sekcie vo výstupnom súbore tak, aby žiadna samostatná časť výstupu v súbore neobsahovala viac ako počítať premiestňovanie. Toto je užitočné pri vytváraní obrovských premiestniteľných súborov na sťahovanie do určitých jadier v reálnom čase pomocou formátu súboru objektov COFF; pretože COFFkedy nemôže predstavovať viac ako 65535 presunov v jednej sekcii. Všimnite si, že to nebude fungovať s formátmi súborov objektov, ktoré nepodporujú ľubovoľné sekcie. Linker nerozdelí jednotlivé časti vstupu pre redistribúciu, takže ak jedna vstupná sekcia obsahuje viac ako počítať premiestnenie jednej výstupnej časti bude obsahovať toľko premiestnení. počítať hodnota predvolená hodnota je 32768.

--stats

Vypočítajte a zobrazte štatistiky o fungovaní odkazovača, ako napríklad čas vykonania a využitie pamäte.

--traditional-formát

Pre niektoré ciele je výsledokld sa v niektorých ohľadoch líši od výstupu niektorých existujúcich linkerov. Tento prepínač požadujeld použite namiesto toho tradičný formát.

Napríklad na SunOS,ld kombinuje duplicitné položky v tabuľke symbolových reťazcov. To môže znížiť veľkosť výstupného súboru s úplnými informáciami o ladení o viac ako 30 percent. Bohužiaľ, program SunOS "dbx" nemôže čítať výsledný program ("gdb" nemá žiadne problémy).--traditional-formát spínač hovoríld nekombinovať duplicitné záznamy.

--section-start názov sekcie = org

Vyhľadajte sekciu vo výstupnom súbore na absolútnej adrese, ktorú zadáte org , Túto možnosť môžete používať toľkokrát, koľkokrát potrebujete na nájdenie viacerých častí na príkazovom riadku. org musí byť jedno hexadecimálne celé číslo; pre kompatibilitu s inými linkermi, môžete vynechať vedúce0x obvykle spojené s hexadecimálnymi hodnotami. Poznámka: nesmie byť medzi nimi biele miesto názov sekcie , označenie rovnosti (``=") a org .

-Tbss org

-Tdata org

-Ttext org

použitie org ako východiskovú adresu pre --- "bss", "data" alebo "text" segmentu výstupného súboru. org musí byť jedno hexadecimálne celé číslo; pre kompatibilitu s inými linkermi, môžete vynechať vedúce0x obvykle spojené s hexadecimálnymi hodnotami.

--dll-veľavravný

--verbose

Zobrazte číslo verzie preld a uveďte podporované emulácie linkerov. Zobrazte, ktoré vstupné súbory sa dajú otvoriť. Zobrazí skript spojovníka, ktorý používa linker.

version-script = verzia-Soubor_skriptu

Zadajte názov skriptu verzie odkazovača. Toto sa zvyčajne používa pri vytváraní zdieľaných knižníc na určenie ďalších informácií o heirarchii verzie pre vytvorenú knižnicu. Táto možnosť má zmysel len pre platformy ELF, ktoré podporujú zdieľané knižnice.

--warn-common

Upozornenie, keď je spoločný symbol kombinovaný s iným bežným symbolom alebo s definíciou symbolu. Unixové prepojenia umožňujú túto poněkud nedbalú prax, ale odkazy na niektorých iných operačných systémoch nie. Táto možnosť vám umožňuje nájsť potenciálne problémy pri kombinovaní globálnych symbolov. Bohužiaľ, niektoré knižnice C používajú túto prax, takže môžete získať nejaké varovania o symboloch v knižniciach, ako aj vo vašich programoch.

Existujú tri druhy globálnych symbolov, ilustrované tu v príkladoch C:

int i = 1;

Definícia, ktorá sa nachádza v sekcii inicializovaných údajov výstupného súboru.

external int i;

Nedefinovaná referencia, ktorá nevymedzuje priestor. Musí existovať definícia alebo spoločný symbol pre premennú niekde.

int i;

Bežný symbol. Ak pre premennú existujú iba (jeden alebo viac) bežné symboly, ide o neinicializovanú oblasť údajov výstupného súboru. Spojovací článok spája viaceré bežné symboly pre jednu premennú do jedného symbolu. Ak majú rozdielne veľkosti, vyberajú najväčšiu veľkosť. Linker premenuje spoločný symbol na deklaráciu, ak existuje definícia rovnakej premennej.

--warn-common možnosť vyhotoviť päť druhov upozornení. Každé upozornenie pozostáva z dvojice riadkov: prvý popisuje symbol, ktorý sa práve stretol a druhý popisuje predchádzajúci symbol, ktorý sa stretol s rovnakým názvom. Jeden alebo obidva symboly budú bežným symbolom.

1.

Otočenie spoločného symbolu do referencie, pretože už existuje definícia symbolu.

(

): upozornenie: časté `"prevzaté definíciou (
): upozornenie: tu definované

2.

Otočenie spoloč