NÉV ld - Az LD használata, a GNU linker SZINOPSZIS ld opciók objfile … LEÍRÁS ld több objektumot és archiválási fájlt egyesíti, áthelyezi az adatait és megszünteti a szimbólum hivatkozásokat. Általában a program összeállításának utolsó lépése futld. ld elfogadja a Linker Command Language fájlokat, amelyeket az AT & T Linkszerkesztő Parancsnyelv-szintaxisának szupersztikájába írtak, hogy egyértelmű és teljes ellenőrzést biztosítson az összekapcsolási folyamat során. Ez a man oldal nem írja le a parancsnyelvet; lásd ald a "info" vagy a manuális ld: a GNU linker, a parancsnyelvre és a GNU linker egyéb szempontjaira vonatkozó részletek. Ez a verzióld az általános célú BFD könyvtárakat használja az objektumfájlok kezelésére. Ez lehetővé teszild többféle formátumban olvasni, kombinálni és írni az objektumfájlokat - például COFF vagy "a.out". Különböző formátumok össze lehetnek kapcsolva az elérhető típusú objektumfájlok előállításához. Rugalmassága mellett a GNU linker sokkal hasznosabb, mint a többi kapcsoló a diagnosztikai információk nyújtásában. Sok linker haladéktalanul hagyja el a végrehajtást hiba esetén; amikor csak lehetséges,ld folytatja a végrehajtást, lehetővé téve más hibák azonosítását (vagy bizonyos esetekben a hiba ellenére kimeneti fájlt kaphat). A GNU linkerld célja a helyzetek széles skálájának lefedése, és a lehető legteljesebb mértékben összeegyeztethető a többi linkerrel. Ennek eredményeképpen számos lehetőség van a viselkedésének ellenőrzésére. OPCIÓK A linker számos parancssori opciót támogat, de a tényleges gyakorlatban kevesen használják őket bármelyik kontextusban. Például gyakori használatátld hogy szabványos Unix objektumfájlokat csatlakoztasson egy szabványos, támogatott Unix rendszeren. Egy ilyen rendszeren a "hello.o" fájl összekapcsolásához: ld -o /lib/crt0.o hello.o -lcEz azt mondjald hogy létrehoz egy nevű fájlt kibocsátás a "/lib/crt0.o" fájl "hello.o" és a "libc.a" könyvtár összekapcsolásával, amely a standard keresési könyvtárakból származik. (Lásd a-l alább.) Néhány parancssori lehetőség a következőhöz:ld a parancssor bármely pontján megadható. Azonban a fájlokhoz (például-l vagy-T, a fájlt a parancssorban az objektumfájlokhoz és egyéb fájlbeállításokhoz képest ponton olvashatóan kell olvasni. A nem fájltartalmú opciók megismétlése egy másik argumentummal vagy nincs további hatása, vagy felülírja az adott esemény előtti eseményeket (a továbbiakban a bal oldali parancssorban). Az alábbiakban felsorolt opciókat, amelyek értelmezhetően többször vannak megadva, az alábbiakban találhatók. A nem opcionális argumentumok objektumfájlok vagy archívumok, amelyeket össze kell kötni. Lehet követni, megelőzni vagy összekeverni a parancssori opciókkal, kivéve, hogy egy objektumfájl argumentum nem helyezhető el az opció és az argumentuma között. Általában a hivatkozó legalább egy objektumfájllal kerül meghívásra, de a bináris bemeneti fájlok más formáit is megadhatja-l, -R, és a script parancsnyelvét. Ha nem bináris bemeneti fájlok egyáltalán vannak megadva, a linker nem hoz létre kimenetet, és kiadja az üzenetetNincs bemeneti fájl. Ha a linker nem ismeri fel az objektumfájl formátumát, akkor azt feltételezi, hogy egy hivatkozó parancsfájl. Az így megadott parancsfájl növeli a linkhez használt fő linkszkriptet (vagy az alapértelmezett linkkód-szkript vagy a-T). Ez a szolgáltatás lehetővé teszi a linker számára, hogy egy olyan objektummal vagy archívummal rendelkező fájlhoz kapcsolódjon, amely csak néhány szimbólum értéket definiál, vagy "INPUT" vagy "GROUP" -t használ más objektumok betöltésére. Ne feledje, hogy a parancsfájl ilyen módon történő megadása csupán növeli a fő hivatkozási parancsfájlt; használja a-T lehetőség az alapértelmezett linkkód-parancsfájl teljes cseréjére. Az olyan opciók esetében, amelyeknek neve egy betű, az opcionális argumentumoknak vagy követniük kell az opcionális betűt anélkül, hogy behatolnának a fehérekbe, vagy közvetlenül megadnák a különálló argumentumokat, miután megkívánta őket. Az olyan opciók esetében, amelyek nevének több betűje van, egy vagy két vonal előjelezheti az opció nevét; például,-trace-szimbólum és--trace-szimbólum egyenértékűek. Megjegyzés: egy kivétel van ettől a szabálytól. A "0" kisbetűvel kezdődő többszörös levél opciók csak két kötőjelet tartalmazhatnak. Ezzel csökkenteni kell a zavarodottságot a-o választási lehetőség. Például-omagic beállítja a kimeneti fájl nevétvarázslat mivel--omagic beállítja az NMAGIC jelzőt a kimeneten. A többes betűvel kapcsolatos érveket vagy el kell választani az opció nevétől egyenlő jelzéssel, vagy különálló argumentumként kell megadni a szükséges opció után. Például,- a trójai szimbólum foo és--trace-szimbólum = foo egyenértékűek. A többes betűs nevek egyedi rövidítései elfogadottak. Megjegyzés - ha a linker indirekt módon fordul elő, egy fordító meghajtóprogramon keresztül (plgcc), akkor az összes linker parancssori opciót előzetesen meg kell jelölni-Wl, (vagy bármi, ami az adott fordító driver számára megfelelő), így: gcc -Wl, - startgroup foo.o bar.o -Wl, - végcsoportEz azért fontos, mert különben a fordító illesztőprogramja csendben lecsökkenheti a linker opciókat, ami rossz kapcsolatot eredményezhet. A GNU linker által elfogadott generikus parancssori kapcsolók táblázata itt található: -a kulcsszó Ezt az opciót a HP / UX kompatibilitás támogatja. A kulcsszó az argumentumnak az egyik húrnak kell lenniearchív, megosztott, vagyalapértelmezett. -aarchive funkcionálisan egyenértékű-Bstatic, a másik két kulcsszó pedig funkcionálisan egyenértékű-Bdynamic. Ez az opció többször használható. -A építészet --architecture = építészet Jelenlegi kiadásábanld, ez az opció csak az Intel 960 architektúrák családjához használható. Abbanld konfiguráció, a építészet argumentum azonosítja a 960-as család sajátos architektúráját, lehetővé téve bizonyos biztosítékokat és módosíthatja az archívkönyvtár keresési útvonalát. Jövőbeli kiadványokld hasonló funkcionalitást támogathat más architektúra családok számára. -b input-formátumban --format = input-formátumban ld úgy konfigurálható, hogy egynél több fajta objektumfájlt támogat. Ha a teld úgy van beállítva, hogy használhatja a-b lehetőség a bináris formátum meghatározására a bemeneti objektumfájlok esetében, amelyek ezt a parancsot követik a parancssorban. Még akkor is, hald úgy van beállítva, hogy támogatja az alternatív objektumformátumokat, ezt általában nem kell megadnia, mintld úgy kell beállítani, hogy alapértelmezett bemeneti formátumként minden gépen a leggyakoribb formátumot várják. input-formátumban egy szöveges karakterlánc, egy adott formátum neve, amelyet a BFD könyvtárak támogatnak. (Az elérhető bináris formátumokat a következővel is felsorolhatjuk:objdump -i.) Ezt a lehetőséget akkor érdemes használni, ha szokatlan bináris formátumú fájlokat csatlakoztat. Használhatod is-b a formátumok explicit módon történő váltására (különböző formátumú objektumfájlok összekapcsolása esetén)-b input-formátumban mielőtt minden objektumfájl-csoportot egy adott formátumban. Az alapértelmezett formátum a "GNUTARGET" környezeti változóból származik. A bemeneti formátumot a "TARGET" parancs segítségével is meghatározhatja egy szkriptből; -c MRI-commandfile --mri-script = MRI-commandfile Az MRI által termelt linkerekkel való kompatibilitás érdekében,ld a GNU ld dokumentáció MRI kompatibilis parancsfájlok fájljában leírt, alternatív, korlátozott parancsnyelvben írt parancsfájlokat fogad el. Adja meg az MRI parancsfájlokat az opcióval-c; használja a-T opció az általános célra írt linkszkriptek futtatásáhozld szkriptnyelv. Ha MRI-cmdfile nem létezik,ldkeresi azt a megadott könyvtárakban-L opciók. -d -dc -dp Ez a három lehetőség egyenértékű; Több formanyomtatványt támogatnak a többi linkerrel való kompatibilitás. Helyet adnak a közös szimbólumoknak akkor is, ha áthelyezhető kimeneti fájl van megadva (-r). A "FORCE_COMMON_ALLOCATION" szkript parancs ugyanazt a hatást fejtette ki. -e belépés --entry = belépés Használat belépés mint a program megkezdésének kifejezett szimbóluma, nem pedig az alapértelmezett belépési pont. Ha nincs jelzéssel jelölt név belépés , a linker megpróbálja értelmezni belépés mint számot, és használja ezt bejegyzéscímként (a számot a 10-es bázisban kell értelmezni;0x a 16-os alapra vagy egy vezetőre0 a 8 alapra). -E --export dinamikus Dinamikusan kapcsolódó végrehajtható fájl létrehozásakor minden szimbólumot hozzá kell adni a dinamikus szimbólum táblához. A dinamikus szimbólumtáblázat olyan szimbólumokkészlet, amelyek a dinamikus objektumokban futási idő alatt láthatók. Ha nem használja ezt a lehetőséget, akkor a dinamikus szimbólumtáblázat általában csak azokat a szimbólumokat tartalmazza, amelyekre a linkben említett néhány dinamikus objektum hivatkozik. Ha a "dlopen" -t olyan dinamikus objektum betöltésére használja, amelyre a program által definiált szimbólumokra kell hivatkozni, nem pedig egy másik dinamikus objektumon, akkor valószínűleg ezt a lehetőséget kell használni a program összekapcsolásakor. A verziószkript segítségével ellenőrizheti, hogy mely szimbólumokat kell hozzáadni a dinamikus szimbólum táblához, ha a kimeneti formátum támogatja. Lásd a--version-script a @ ref {VERSION}. -EB Link nagy-endian objektumok. Ez befolyásolja az alapértelmezett kimeneti formátumot. EL Link kis endian objektumok. Ez befolyásolja az alapértelmezett kimeneti formátumot. -f --kiegészítő név ELF megosztott objektum létrehozásakor állítsa be a belső DT_AUXILIARY mezőt a megadott névre. Ez azt mondja a dinamikus összekötőnek, hogy a megosztott objektum szimbólumtábláját segédszűrőként kell használni a megosztott objektum szimbólumtábláján név . Ha később kapcsolatot létesít egy program ezzel a szűrőobjektummal, akkor a program futtatásakor a dinamikus linker a DT_AUXILIARY mezőt fogja látni. Ha a dinamikus linker megszünteti a szűrőobjektum bármely szimbólumát, akkor először ellenőrizni fogja, hogy van-e definíció a megosztott objektumban név . Ha van ilyen, a szűrőobjektum definíciója helyett használják. A megosztott objektum név nem létezik. Így a megosztott objektum név lehet használni bizonyos funkciók alternatív megvalósításához, talán hibakereséshez vagy gépi teljesítményhez. Ez az opció többször megadható. A DT_AUXILIARY bejegyzések a parancssorban megjelenő sorrendben kerülnek létrehozásra. -F név --szűrő név ELF megosztott objektum létrehozásakor állítsa be a belső DT_FILTER mezőt a megadott névhez. Ez azt mondja a dinamikus hivatkozónak, hogy a létrehozott megosztott objektum szimbólumtáblázatát kell használni a szűrőben a megosztott objektum szimbólumtábláján név . Ha később kapcsolatot létesít egy program ezzel a szűrőobjektummal, akkor a program futtatásakor a dinamikus linker a DT_FILTER mezőt fogja látni. A dinamikus linker a szimbólumokat a szûrõobjektum szimbólum táblázata szerint rendezi el, de a megosztott objektumban található definíciókhoz kapcsolódik név . Így a szűrőobjektum segítségével kiválaszthatja az objektum által biztosított szimbólumok egy részhalmazát név . Néhány régebbi linker használta a-F opciót egy összeállítási eszköztáron keresztül az objektum-fájlformátum megadásához mind a bemeneti, mind a kimeneti objektumfájl esetén. A GNU linker más mechanizmusokat használ erre a célra:-b, --formátum, --oformat opciók, a "TARGET" parancs a linker szkriptekben és a "GNUTARGET" környezeti változó. A GNU linker figyelmen kívül hagyja a-F lehetőség, ha nem hoz létre ELF megosztott objektumot. -fini név ELF-futtatható vagy megosztott objektum létrehozásakor hívja fel a NAME-t, amikor a futtatható vagy a megosztott objektumot letölti, a DT_FINI beállítást a funkció címére. Alapértelmezés szerint a linker a "_fini" funkciót használja hívásként. -g Figyelmen kívül hagyva. Feltéve, hogy kompatibilis más eszközökkel. -G érték --gpsize = érték A GP regiszter segítségével optimalizálható objektumok maximális méretének beállítása méret . Ez csak az objektumfájlformátumokra vonatkozik, mint például a MIPS ECOFF, amely támogatja a nagy és kicsi objektumok különböző szakaszokba helyezését. Ezt más objektumfájlformátumokra figyelmen kívül hagyja. -h név -soname = név ELF megosztott objektum létrehozásakor állítsa be a belső DT_SONAME mezőt a megadott névre. Amikor egy végrehajtható fájl egy DT_SONAME mezővel rendelkező megosztott objektummal van összekapcsolva, akkor a végrehajtó futtatásakor a dinamikus linker megpróbálja betölteni a DT_SONAME mezõben megadott megosztott objektumot, nem pedig a linkerrel megadott fájlnevet. -én Végezze el a növekményes linket (ugyanaz, mint az opció-r). -benne név ELF-futtatható vagy megosztott objektum létrehozásakor hívja a NAME-t, amikor a futtatható vagy a megosztott objektum betöltődik, a DT_INIT beállítást a funkció címére. Alapértelmezés szerint a linker a "_init" funkciót használja hívásként. -l archív --library = archív Archív fájl hozzáadása archív a hivatkozni kívánt fájlok listájához. Ez az opció többször használható.ld a "libarchive.a" előfordulására minden egyes elérési utat keres archív meghatározott. A megosztott könyvtárakat támogató rendszereken,ld olyan könyvtárakat is kereshet, amelyek nem ".a" kiterjesztéssel rendelkeznek. Különösen az ELF és a SunOS rendszereken,ld egy ".so" kiterjesztésű könyvtárra keres egy könyvtárat, mielőtt egy ".a" kiterjesztéssel keres. Megegyezés szerint a ".so" kiterjesztés egy megosztott könyvtárat jelez. A linker csak egyszer keres egy archívumot a parancssorban megadott helyen. Ha az archívum olyan szimbólumot definiál, amely nem volt meghatározva olyan objektumban, amely az archívum előtt megjelenik a parancssorban, akkor a linker tartalmazza a megfelelő fájlokat az archívumból. Azonban a parancssorban később megjelenő objektum nem definiált szimbóluma nem okozza a linkernek, hogy újra keressen az archívumban. Lásd a-( opció egy olyan módra, amely arra kényszeríti a linkert, hogy többször kereshesse az archívumokat. Ugyanazt az archívumot többször is felsorolhatja a parancssorban. Ez a fajta archív keresési szabvány a Unix linkerek számára. Ha azonban használjald onAIX, vegye figyelembe, hogy ez különbözik az AIX linker viselkedésétől. -L searchdir --library-path = searchdir Út hozzáadása searchdir azon útvonalak listájához, amelyekld keresi az archív könyvtárakat ésld vezérlő szkriptek. Ezt az opciót többször is használhatja. A könyvtárakat a parancssorban megadott sorrendben keresik. A parancssorban megadott könyvtárak az alapértelmezett könyvtárak előtt keresésre kerülnek. Minden-L Az opciók mindenkire vonatkoznak-l opciókat, attól függetlenül, hogy milyen sorrendben jelenik meg a beállítás. Ha searchdir kezdődik a "=", akkor a "=" helyett a sysroot előtag , a kapcsoló konfigurálásakor megadott útvonal. A keresett útvonalak alapértelmezett készlete (a-L) attól függ, melyik emulációs módld használ, és egyes esetekben a konfigurálás módját is. Az útvonalakat egy linkszkriptben is megadhatja a "SEARCH_DIR" paranccsal. Az így megadott könyvtárakat arra a pontra keresik, ahol a linkszkript jelenik meg a parancssorban. -m emuláció Emulálja a emuláció linker. A rendelkezésre álló emulációk felsorolása a--bőbeszédű vagy-Vopciók. Ha a-m opciót nem használják, az emuláció az "LDEMULATION" környezeti változóból származik, ha ez meg van határozva. Ellenkező esetben az alapértelmezett emuláció a kapcsoló konfigurálásának módjától függ. -M --print-térkép Nyomtasson egy hivatkozási térképet a szabványos kimenetre. A hivatkozási térkép a linkre vonatkozó információkat tartalmaz, többek között a következőket: * Az objektumfájlok és szimbólumok leképezése a memóriába. * A szokásos szimbólumok kiosztása. * A linkben szereplő minden archívum tagja, a szimbólum megemlítésével, amely az archívum tagjának bevitelét okozta. -n --nmagic Kapcsolja ki a szakaszok oldalirányítását, és jelölje ki a kimenetet "NMAGIC" -ként, ha lehetséges. -N --omagic Állítsa be a szöveges és adatszekciókat olvashatóvá és írhatóvá. Ne fűzze oldalra az adatszegmenst, és kapcsolja ki a megosztott könyvtárakhoz való kapcsolódást. Ha a kimeneti formátum támogatja a Unix stílusú mágia számokat, jelölje ki a kimenetet "OMAGIC" -ként. -no-omagic Ez az opció elutasítja a legtöbb effektust-N választási lehetőség. A szövegrész csak olvasható, és arra kényszeríti az adatszegmenst, hogy oldalirányban legyen. Megjegyzés: ez a lehetőség nem engedélyezi a megosztott könyvtárakhoz való kapcsolódást. Használat-Bdynamic ezért. -o kibocsátás --output = kibocsátás Használat kibocsátás mint a program által előállított program neveld; ha ez az opció nincs megadva, akkor a név a.out alapértelmezés szerint. Az "OUTPUT" szkript parancs megadhatja a kimeneti fájl nevét is. -O szint Ha szint egy nulla értéknél nagyobb számértékld optimalizálja a kimenetet. Ez lényegesen hosszabb időt vehet igénybe, ezért valószínűleg csak az utolsó binárisra van engedélyezve. -q --emit-relocs Hagyja áthelyezési szakaszokat és tartalmakat teljesen összekapcsolt exececutables. A linkek elemzéséhez és optimalizálásához szükséges eszközökre szükség lehet ez az információ a végrehajtható fájlok helyes módosítása érdekében. Ez nagyobb végrehajtható fájlokat eredményez. Ez az opció jelenleg csak az ELF platformokon támogatott. -r --relocateable Lehetővé teszi az áthelyezhető kimenet létrehozását --- azaz létrehoz egy kimeneti fájlt, amely viszont bemenetként szolgálhatld. Ezt gyakran hívják részleges összekapcsolás . Hány mellékhatásként, a szabványos Unix mágia számokat támogató környezetekben ez az opció a kimeneti fájl mágikus számát "OMAGIC" -ra állítja. Ha ez az opció nincs megadva, abszolút fájlt hoz létre. A C ++ programok összekapcsolása esetén ez a lehetőség nem fog feloldja a konstruktőrökre vonatkozó hivatkozásokat; ezt csinálni-Ur. Ha a bemeneti fájlnak nincs a formátuma, mint a kimeneti fájl, akkor a részleges összekapcsolás csak akkor támogatott, ha a bemeneti fájl nem tartalmaz áttelepítést. A különböző kimeneti formátumok további korlátozásokkal rendelkezhetnek; például néhány "a.out" alapú formátum nem támogatja a más formátumú bemeneti fájlok részleges összekapcsolását. Ez a lehetőség ugyanaz, mint a-én. -R fájl név --just-szimbólumok = fájl név A szimbólumnevek és címük olvasása fájl név , de ne helyezze át, vagy foglalja bele a kimenetbe. Ez lehetővé teszi, hogy a kimeneti fájl szimbolikusan utaljon a többi programban meghatározott memória abszolút helyére. Ezt az opciót többször is használhatja. Ha kompatibilis más ELF kapcsolókkal, ha a-R opciót egy könyvtárnév követi, nem pedig egy fájlnevet, akkor az a-rpath választási lehetőség. -s --strip-all Távolítsa el az összes szimbólumadatot a kimeneti fájlból. -S --strip-debug Hagyja el a hibakereső szimbólum információit (de nem minden szimbólumot) a kimeneti fájlból. -t --nyom Nyomtassa ki a bemeneti fájlok nevétld feldolgozza azokat. -T szkriptfájlt --script = szkriptfájlt Használat szkriptfájlt mint linkerkript. Ez a parancsfájl helyettesítild's alapértelmezett linker szkriptet (nem hozzá hozzáadásával) commandfile meg kell adnia mindent, ami szükséges a kimeneti fájl leírásához. Ha szkriptfájlt nem létezik az aktuális könyvtárban, az "ld" az előzőekben megadott könyvtárakban keresi-L opciók. Többszörös-T lehetőségek felhalmozódnak. -u szimbólum --undefined = szimbólum Erő szimbólum be kell írni a kimeneti fájlba definiálatlan szimbólumként. Ehhez például hozzárendelheti a további modulok összekapcsolását a standard könyvtárakkal.-u más opcionális argumentumokkal meg lehet ismételni további nem definiált szimbólumok beírásához. Ez a beállítás megegyezik az "EXTERN" linker szkript parancsával. -Ur A C ++ programokon kívül bármi más is, ez a lehetőség egyenértékű-r: újratelepíthető kimenetet hoz létre - azaz egy kimeneti fájlt, amely viszont bemenetként szolgálhatld. C ++ programok összekapcsolásakor,-Ur csinál a konstruktőrökre vonatkozó hivatkozások megoldása, ellentétben-r. Nem működik-Ur azokra a fájlokra, amelyek maguk is kapcsolódtak-Ur; ha a konstrukciós tábla épült, akkor nem lehet hozzáadni. Használat-Ur csak az utolsó részleges linkre, és-r a többiek számára. --unique = SZAKASZ Külön külön kimeneti részt hoz létre minden egyes beviteli szakaszhoz SZAKASZ , vagy ha az opcionális helyettesítő SZAKASZ hiányzik az érv, minden árva bejövő szakasz esetében. Az árva szakasz olyan, amely nem szerepel kifejezetten egy linkszkriptben. Ezt a beállítást többször is használhatja a parancssorban; Ez megakadályozza a beviteli szakaszok azonos névvel történő normális összevonását, ami felülírja a kimeneti szakaszok hozzárendelését egy linkszkriptben. -v --változat -V A verzió számának megjelenítéseld. A-V opció felsorolja a támogatott emulációkat is. -x --discard-all Törölje az összes helyi szimbólumot. -X --discard helyiek Törölje az ideiglenes helyi szimbólumokat. A legtöbb célhoz, ez minden olyan helyi szimbólum, amelynek a neve kezdődikL. -y szimbólum --trace-szimbólum = szimbólum Adja meg az egyes csatolt fájlok nevét, amelyekben szimbólum Megjelenik. Ez a lehetőség többször is megadható. Számos rendszernél szükséges aláhúzni az aláhúzást. Ez az opció akkor hasznos, ha egy nem definiált szimbólum van a linkben, de nem tudja, honnan származik a referencia. Y pálya hozzáad pálya az alapértelmezett könyvtárkeresési útvonalhoz. Ez a lehetőség létezik a Solaris kompatibilitásra. -z kulcsszó Az elismert kulcsszavak az "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "most", "származás", "combreloc", "nocombreloc" és "nocopyreloc ”. A többi kulcsszó figyelmen kívül marad a Solaris kompatibilitás miatt. Az "initfirst" azt a tárgyat jelöli, amelyet inicializálni kell először futás közben, mielőtt bármilyen más objektumot megkezdenének.Az "interpose" jelöli azt az objektumot, amelyet a szimbólum táblája az összes szimbólum, de az elsődleges futtatható fájl előtt áll össze. A "loadfltr" jelöli az objektumot, hogy a fájljait futás közben azonnal feldolgozzák. "nodefaultlib" jelöli azt az objektumot, amelyet az objektum függvényeinek keresése nem veszi figyelembe alapértelmezett könyvtári keresési útvonalak. A "nodelete" azt jelzi, hogy az objektumot futás közben nem szabad kirakodni. A "nodlopen" a "dlopen" elérhetetlen objektumot jelöli. A "csomópont" azt jelzi, hogy az objektumot nem lehet "dldump" -al dobni. "most" jelöli az objektumot a nem lusta futásidejű kötéssel. "eredet" jelzi, hogy az objektum tartalmazhat $ ORIGIN. A "defs" nem definiált szimbólumokat tilt. A "muldefs" többféle definíciót tesz lehetővé. A "combreloc" egyesíti a többszörös áthelyezési szakaszokat, és rendezi őket, hogy dinamikus szimbólumkeresési gyorsítótárat lehessen elérni. A "nocombreloc" letiltja a többszörös reloc szakaszok kombinációját. A "nocopyreloc" letiltja a másoló relok készítését. -( levéltár -) --start-csoport levéltár --end-csoport A levéltár legyen az archív fájlok listája. Ezek lehetnek explicit fájlnevek, vagy-lopciók. A megadott archívumokat ismételten keresik, amíg új, nem definiált hivatkozásokat hoznak létre. Általában egy archívumot csak egyszer keresnek a parancssorban megadott sorrendben. Ha az archívumban olyan szimbólumra van szükség, amely egy objektum által hivatkozott, a parancssorban később megjelenő archívumban szereplő nem definiált szimbólumot rendez, akkor a linker nem tudja megoldani ezt a hivatkozást. Az archívumok csoportosításával mindegyiket többször is meg kell keresni, amíg az összes lehetséges hivatkozás meg nem oldódik. Ennek az opciónak a használata jelentős teljesítményköltséget eredményez. A legjobb, ha csak két vagy több archívum között elkerülhetetlen körkörös hivatkozások vannak. --accept-unknown-input-arch -no-elfogadják-unknown-input-arch Az összekötőnek azt a bemeneti fájlt fogadja el, amelynek architektúráját nem ismeri fel. A feltételezés az, hogy a felhasználó tudja, mit csinál és szándékosan hivatkozni szeretne az ismeretlen bemeneti fájlokban. Ez volt a linker alapértelmezett viselkedése a 2.14 kiadás előtt. A 2.14-es kiadástól kezdve az alapértelmezett viselkedés az ilyen bemeneti fájlok elutasítása, így a--accept-unknown-input-arch lehetőség van hozzáadva a régi viselkedés visszaállításához. -assert kulcsszó Ezt az opciót a SunOS kompatibilitás figyelmen kívül hagyja. -Bdynamic -dy -call_shared Link dinamikus könyvtárakkal. Ez csak olyan platformokon érhető el, amelyekhez a megosztott könyvtárak támogatottak. Ez az opció általában az ilyen platformokon alapértelmezett. Az opció különböző változatai különböző rendszerek kompatibilitására szolgálnak. Ezt a beállítást többször is használhatja a parancssorban: hatással van a könyvtárak keresésére-l az ezt követő opciók. -Bgroup Állítsa be a "DF_1_GROUP" jelzőt a "DT_FLAGS_1" bejegyzéshez a dinamikus szakaszban. Ez azt eredményezi, hogy a futásidejű linker kezeli a lekérdezéseket ebben az objektumban és annak függőségeit, amelyeket csak a csoporton belül végezzen.-no-meghatározatlan magában foglalja. Ez a lehetőség csak az ELF platformokon érhető el, amelyek támogatják a megosztott könyvtárakat. -Bstatic -dn -non_shared -statikus Ne kapcsolódjon a megosztott könyvtárakhoz. Ez csak olyan platformokon érhető el, amelyekhez a megosztott könyvtárak támogatottak. Az opció különböző változatai különböző rendszerek kompatibilitására szolgálnak. Ezt a beállítást többször is használhatja a parancssorban: hatással van a könyvtárak keresésére-l az ezt követő opciók. -Bsymbolic Megosztott könyvtár létrehozásakor hivatkozzon a globális szimbólumokra a megosztott könyvtár definíciójába, ha vannak ilyenek. Általában lehetséges, hogy egy megosztott könyvtárral összekapcsolt program felülbírálja a definíciót a megosztott könyvtáron belül. Ez az opció csak az ELFplatformokon használható, amelyek támogatják a megosztott könyvtárakat. --check-szakaszok -no-check-szakaszok Megkéri a linkert nem hogy ellenőrizze a címeket, miután kijelölték őket, hogy láthassanak átfedéseket. Általában a linker elvégzi ezt a csekket, és ha megtalálja az átfedéseket, akkor megfelelő hibaüzeneteket eredményez. A linker nem ismeri, és nem teszi lehetővé az oszlopokban lévő szakaszok kibocsátását. Az alapértelmezett viselkedés visszaállítható a parancssori kapcsolóval--check-szakaszok. --cref Adjon meg egy kereszthivatkozási táblát. Ha létrehoz egy összekötő térképfájlt, a kereszttájékoztató táblázat a térképfájlba kerül kinyomtatásra. Ellenkező esetben a szabványos kimenetre nyomtatódik. A táblázat formátuma szándékosan egyszerű, így szükség esetén szkriptet is feldolgozhat. A szimbólumokat kinyomtatják, név szerint rendezve. Minden egyes szimbólumhoz megadja a fájlnevek listáját. Ha a szimbólum definiálva van, akkor a felsorolt első fájl a meghatározás helyszíne. A fennmaradó fájlok hivatkozásokat tartalmaznak a szimbólumra. -no meghatározzák gyakori Ez az opció meggátolja a címek hozzárendelését a közös szimbólumokhoz. Az "INHIBIT_COMMON_ALLOCATION" parancsfájl ugyanezzel a hatással bír. A-no meghatározzák gyakori opció lehetővé teszi a címzettek hozzárendelésének megszüntetését a közös szimbólumokhoz a kimeneti fájltípus kiválasztásakor; ellenkező esetben egy nem áthelyezhető kimeneti típusú erők hozzárendelnek címeket a Közös szimbólumokhoz. használata-no meghatározzák gyakori lehetővé teszi, hogy a közös könyvtárakhoz tartozó közös szimbólumokat csak a főprogramban adják meg a címzett címek. Ez kiküszöböli a fel nem használt duplán lévő területet a megosztott könyvtárban, és megakadályozza a hibás másolat feloldására vonatkozó esetleges zavarokat is, ha sok olyan dinamikus modul létezik, amelyek speciális keresési útvonalakat tartalmaznak a futásidejű szimbólumfelbontáshoz. --defsym szimbólum = kifejezés Hozzon létre egy globális szimbólumot a kimeneti fájlban, amely tartalmazza az abszolút címet kifejezés . Ezt az opciót annyiszor használhatja, amennyi szükséges ahhoz, hogy több szimbólumot definiáljon a parancssorban. Az aritmetika korlátozott formája támogatható a kifejezés ebben az összefüggésben: adhat hexadecimális konstansot vagy létező szimbólum nevét, vagy használja a "+" és a "-" billentyűket hexadecimális konstansok vagy szimbólumok hozzáadásához vagy kivonásához. Ha bonyolultabb kifejezésekre van szüksége, fontolja meg a linker parancsnyelvének használatát a parancsfájlból. Jegyzet: ne legyen fehér hely szimbólum , az egyenlő jel (``=''), és kifejezés . --demangle = stílus -no-demangle Ezek a beállítások szabályozzák, hogy a hibajelentések és más kimenetek szimbólumneveket szétkeverik-e. Amikor a linkert megkérdezi, hogy megpróbálja megmutatni a szimbólumneveket, az megpróbálja megjeleníteni a szimbólumneveket: az elülső aláhúzásokat szalagolja, ha az objektum fájlformátumát használja, és a C ++ kódolt szimbólumneveket felhasználó által olvasható nevekké alakítja. A különböző fordítóprogramok különböző felépítési stílusokkal rendelkeznek. Az opcionális demangling stílus argumentum használható a megfelelő fordítási stílus kiválasztásához. A linker alapértelmezés szerint eldobja a környezet változójátCOLLECT_NO_DEMANGLE be van állítva. Ezek az opciók használhatók az alapértelmezett beállítások felülbírálására. --dynamic-linker fájl Állítsa be a dinamikus linker nevét. Ez csak akkor értelmezhető, ha dinamikusan kapcsolt ELF-futtatható fájlokat generál. Az alapértelmezett dinamikus linker általában helyes; ne használd ezt, hacsak nem tudod, mit csinálsz. --embedded-relocs Ez az opció csak akkor értelmezhető, ha összekapcsolja a beépített PIPS-kódot a -membedded-pic opcióval a GNU fordítóhoz és összeszerelőhöz. Ennek eredményeképpen a linker létrehoz egy táblázatot, amelyet futásidőben használhatunk olyan adatok áthelyezésére, amelyeket statikusan inicializáltak pointer értékekként. A részletekért lásd a codesuite / ld-empic kódot. --fatal-figyelmeztetések Az összes figyelmeztetést hibaként kezelje. --force-exe-utótag Győződjön meg róla, hogy a kimeneti fájl rendelkezik .exe utótagdal. Ha egy sikeresen épített, teljesen összekapcsolt kimeneti fájlnak nincs ".exe" vagy ".dll" utótagja, akkor ez az opció arra kényszeríti a kapcsolót, hogy másolja a kimeneti fájlt azonos nevű névvel egy ".exe" utótagdal. Ez az opció akkor hasznos, ha a nem módosított Unix makefile-eket egy Microsoft Windows-kiszolgálón használja, mivel a Windows egyes verziói nem fognak futtatni képeket, kivéve ha a ".exe" utótag végződik. -no-GC-szakaszok --gc-szakaszok Engedélyezze a fel nem használt beviteli szakaszok szemétgyűjtését. A célokat nem veszi figyelembe, amelyek nem támogatják ezt az opciót. Ez az opció nem kompatibilis-r, és nem kell dinamikus összekapcsolással használni. Az alapértelmezett viselkedés (ennek a szemétgyűjtésnek a nem teljesítése) helyreállítható-no-GC-szakaszok a parancssorban. --Segítség Nyomtassa ki a parancssori opciók összefoglalását a szabvány kimeneten és kilép. --target-help Nyomtassa ki az összes cél-specifikus opció összefoglalását a szabványos kimeneten és a kilépéskor. -Térkép MAPFÁJL Nyomtasson egy hivatkozási térképet a fájlhoz MAPFÁJL . Lásd a-M lehetőség, fent. -no-keep-memória ld általában optimalizálja a memóriahasználat sebességét a memóriában tárolt bemeneti fájlok szimbólum tábláinak tárolásával. Ez az opció megmondjald hanem a memóriahasználat optimalizálására, szükség szerint a szimbólum táblázatok újbóli megjelenítésével. Ez lehet szükséges, hald kiürül a memóriaterületről, miközben egy nagy végrehajtható fájlt összekapcsol. -no-meghatározatlan -z defs Normális esetben egy nem szimbolikus megosztott könyvtár létrehozásakor definiálatlan szimbólumok engedélyezettek és a futásidejű betöltő nem oldja meg. Ezek az opciók letiltják az ilyen nem definiált szimbólumokat. --allow-multiple-definition -z muldefs Általában, ha egy szimbólum többször definiált, a linker végzetes hibát jelent. Ezek az opciók lehetővé teszik több fogalommeghatározást, és az első meghatározást fogják használni. --allow-shlib-definiálatlan A nem definiált szimbólumok engedélyezése a megosztott objektumokban akkor is, ha a --no-undefined be van állítva. A nettó eredmény az lesz, hogy a rendszeres objektumokban meg nem határozott szimbólumok továbbra is hibát okoznak, de a megosztott objektumokban nem definiált szimbólumokat figyelmen kívül hagyják. A no_undefined végrehajtása azt a feltevést teszi, hogy a futásidejű linker elfojtja a nem definiált szimbólumokat. Azonban van legalább egy olyan rendszer (BeOS), ahol a nem megosztott szimbólumok a megosztott könyvtárakban normálisak, mivel a rendszermag betöltési idő alatt feltölti azokat, hogy kiválassza, melyik függvény a leginkább megfelelő az aktuális architektúrához. AZAZ. dinamikusan válassza ki a megfelelő memset funkciót. Úgy tűnik, hogy a HPPA megosztott könyvtárak számára is normális, hogy meghatározatlan szimbólumokkal rendelkezzen. -no-definiálatlan-verzió Általában, ha egy szimbólum nem definiált változata, a linker figyelmen kívül hagyja. Ez az opció letiltja a nem definiált verziójú szimbólumokat, és helyette halálos hibát ad ki. -no-warn-mismatch Normális esetbenld hibát okoz, ha valamilyen okból nem megfelelő adatbeviteli fájlokat próbál összekötni, talán azért, mert különböző processzorokra vagy különböző endiannesses-ekre lettek fordítva. Ez az opció megmondjald hogy csendesen engedje meg az ilyen lehetséges hibákat. Ezt az opciót csak akkor szabad gondosan használni, ha olyan speciális műveletet hajtott végre, amely biztosítja, hogy a linkerhibák nem megfelelőek. -no-egész-archív Kapcsolja ki a--whole-archív opció a későbbi archív fájlokhoz. --noinhibit-exec Tartsa meg a végrehajtható kimeneti fájlt, ha még mindig használható.Általában a linker nem hoz létre kimeneti fájlt, ha hibát észlel a kapcsolatfolyamat során; akkor kilép a kimeneti fájl írása nélkül, amikor valamilyen hibát okoz. -nostdlib Csak a parancssorban kifejezetten megadott könyvtárkönyvtárakat keres. A linker szkriptekben (beleértve a parancssorban megadott hivatkozási parancsfájlokat is) tartalmazó könyvtárkönyvtárakat figyelmen kívül hagyja. --oformat kimeneti formátum ld úgy konfigurálható, hogy egynél több fajta objektumfájlt támogat. Ha a teld úgy van beállítva, hogy használhatja a--oformat opció a kimeneti objektum fájl bináris formátumának megadásához. Még akkor is, hald úgy van beállítva, hogy támogatja az alternatív objektumformátumokat, ezt általában nem kell megadnia, mintld úgy kell beállítani, hogy alapértelmezett kimeneti formátumként adja meg az egyes gépek legelterjedtebb formátumát. kimeneti formátum egy szöveges karakterlánc, egy adott formátum neve, amelyet a BFD könyvtárak támogatnak. (Az elérhető bináris formátumokat a következővel is felsorolhatjuk:objdump -i.) Az "OUTPUT_FORMAT" parancsfájl is megadhatja a kimeneti formátumot, de ez az opció felülírja. -qmagic Ez az opció figyelmen kívül marad a Linux kompatibilitás miatt. -Qy Ezt az opciót az SVR4 kompatibilitás figyelmen kívül hagyja. --relax Egy lehetőség gépfüggő hatásokkal. Ez az opció csak néhány célt támogat. Egyes platformokon a--relax opció elvégzi a globális optimalizációkat, amelyek akkor válik lehetővé, ha a linker elhárítja a címzést a programban, például pihentető címmódokat és új utasításokat szintetizál a kimeneti objektumfájlban. Néhány platformon ezek a kapcsolódási idő a globális optimalizálás lehetetlenné teszi az eredményül kapott végrehajtható fájl szimbolikus hibakeresését. Ez ismeretes a Matsushita MN10200 és MN10300 processzorcsalád esetében. Olyan platformokon, ahol ezt nem támogatja,--relax elfogadható, de figyelmen kívül hagyják. --retain-szimbólumok-fájl fájl név Őrizze csak a fájlban felsorolt szimbólumok fájl név , elvetve az összes többiet. fájl név egyszerűen egy lapos fájl, egy soronként egy szimbólumnévvel. Ez az opció különösen hasznos olyan környezetekben (például a VxWorks), ahol egy nagy globális szimbólumtáblázat fokozatosan felhalmozódik, hogy megőrizze a futásidejű memóriát. --retain-szimbólumok-fájl csinál nem elvetheti a nem definiált szimbólumokat vagy az áthelyezésekhez szükséges szimbólumokat. Csak megadhatja--retain-szimbólumok-fájl egyszer a parancssorban. Felülbírálja-s és-S. -rpath dir Adjon hozzá egy könyvtárat a futásidejű könyvtár keresési útvonalához. Ezt akkor használjuk, ha egy ELFexecutable-t osztott objektumokkal kapcsolunk. Minden-rpath az argumentumokat összekapcsolják és átadják a futásidejű kapcsolónak, amely a megosztott objektumokat futásidőben keresi. A-rpath opciót akkor is használjuk, ha olyan megosztott objektumokat találunk, amelyek a linkben kifejezetten szerepeltetett megosztott objektumokhoz szükségesek; lásd a-rpath-link választási lehetőség. Ha-rpath nem használatos az ELF-futtatható fájl összekapcsolásakor, ha a definiálásra kerül az "LD_RUN_PATH" környezeti változó tartalma. A-rpath lehetőség a SunOS-ban is használható. Alapértelmezés szerint a SunOS-on a linker egy teljes futáskeresési foltot hoz létre-L opciók megadása. Ha egy-rpath lehetőség, a futásidejű keresési útvonal kizárólag a-rpath opciók, figyelmen kívül hagyva a-Lopciók. Ez hasznos lehet a gcc használatakor, ami sokat ad hozzá-L olyan opciók, amelyek lehetnek az onFS fájlrendszerek. Ha kompatibilis más ELF kapcsolókkal, ha a-R opciót egy könyvtárnév követi, nem pedig egy fájlnevet, akkor az a-rpath választási lehetőség. -rpath-link DIR Az ELF vagy a SunOS használata esetén egy megosztott könyvtárnak szüksége lehet egy másikra. Ez akkor történik, ha egy "ld-megosztott" link egy megosztott könyvtárat tartalmaz, mint az egyik bemeneti fájlt. Ha a linker egy ilyen jellegű függőséget tapasztal, amikor egy nem megosztott, nem áthelyezhető linket tesz, automatikusan megpróbálja megtalálni a szükséges megosztott könyvtárat, és felveszi azt a hivatkozásra, ha ez nem szerepel kifejezetten. Ebben az esetben a-rpath-link opció megadja a keresés első könyvtárakészletét. A-rpath-link opció megadhatja a könyvtárnevek sorrendjét vagy a kettőspontokkal elválasztott nevek listájának megadásával vagy többszörös megjelenítéssel. Ezt az opciót óvatosan kell használni, mivel felülírja azt a keresési elérési utat, amelyet keményen osztott könyvtárba rendeztek. Ilyen esetben lehetséges, hogy nem szándékosan más keresési útvonalat használ, mint a futásidejű linker. A linker a következő keresési útvonalakat használja a szükséges megosztott könyvtárak kereséséhez. 1. Bármely könyvtár által megadott-rpath-link opciók. 2. Bármely könyvtár által megadott-rpath opciók. A különbség-rpath és-rpath-link az, hogy a könyvtárak által meghatározott-rpath az opciók a végrehajtható fájlban szerepelnek és a futásidejűek, míg a-rpath-link opció csak a kapcsolatidőben érvényes. Csak a natív linker. 3. ELF rendszeren, ha a-rpath és az "rpath-link" opciókat nem használták, keresse meg az "LD_RUN_PATH" környezeti változó tartalmát. Csak a natív linker. 4. A SunOS-on, ha a-rpath opciót nem használtuk, keressük meg a használni kívánt könyvtárakat-L opciók. 5. Natív hivatkozó esetén az "LD_LIBRARY_PATH" környezeti változó tartalma. 6. Egy natív ELF-linker esetén a megosztott könyvtár "DT_RUNPATH" vagy "DT_RPATH" könyvtárai a szükséges megosztott könyvtárakra keresnek.A "DT_RPATH" bejegyzések figyelmen kívül maradnak, ha léteznek "DT_RUNPATH" bejegyzések. 7. Normál esetben az alapértelmezett könyvtárak / lib és / Usr / lib . 8. A natív linker egy ELF rendszeren, ha a fájl /etc/ld.so.conf-ban létezik, az adott fájlban található könyvtárak listája. Ha a szükséges megosztott könyvtár nem található, a linker figyelmeztetést ad, és folytatja a hivatkozást. -shared -Bshareable Hozzon létre egy megosztott könyvtárat. Ezt jelenleg csak az ELF, az XCOFF és a SunOS platformokon támogatják. A SunOS-on a linker automatikusan létrehoz egy megosztott könyvtárat, ha a-e opciót nem használjuk, és a hivatkozásban nincsenek meghatározva szimbólumok. --sort-common Ez az opció megmondjald hogy a szokásos szimbólumokat méret szerint rendezzék, amikor azokat a megfelelő kimeneti szakaszokba helyezi. Először az összes byte szimbólumot, majd a két bájtot, majd a négy bájtot, majd minden mást. Ennek célja, hogy megakadályozza a szimbólumok közötti eltéréseket az igazítási korlátok miatt. --specifikáció méret Hasonló--split-by-RELOC de létrehoz egy új kimeneti részt minden bemeneti fájlhoz, amikor méret elért. méret alapértelmezés szerint 1-es méretű, ha nincs megadva. --lépésenkénti áthelyezés számol Megpróbál létrehozni extra szakaszokat a kimeneti fájlban, hogy egyetlen fájlt sem tartalmazhat a fájlban számol áttelepülése. Ez akkor hasznos, ha hatalmas áthelyezhető fájlokat generál, amelyek bizonyos valós idejű rendszermagokba t