Linker

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. február 18-án felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .

A Linker (egyben linkszerkesztő , angol  linkszerkesztőből linker ) egy linkelést ( „linking” ) végrehajtó eszközprogram : egy vagy több objektummodult vesz be bemenetként , és ezekből összeállít egy futtatható vagy könyvtári modul fájlt.

Kezdetben, a dinamikus könyvtárak megjelenése előtt a betöltők elláthatták a linker egyes funkcióit [1] , de mostanában a programok betöltése leggyakrabban egy külön folyamathoz van hozzárendelve [2] .

A modulok összekapcsolásához a linker a fordító által az egyes objektummodulokban létrehozott szimbólumtáblákat használ . Ezek a táblázatok a következő típusú karaktereket tartalmazhatják:

A legtöbb fordítónál egy objektumfájl egy forrásfájl fordításának eredménye . Ha egy program több objektumfájlból épül fel, a linker ezeket a fájlokat egyetlen végrehajtható fájlba állítja össze úgy, hogy szimbólumok helyett címeket számít ki és helyettesít, akár linkidőben (statikus hivatkozás), akár futási időben (dinamikus hivatkozás).

A linker speciális gyűjteményekből , úgynevezett könyvtárakból képes kibontani az objektumfájlokat . Ha a felhasználói objektumfájlok által hivatkozott szimbólumok mindegyike nincs definiálva, akkor a linker a definícióikat keresi a felhasználó által bemenetként megadott könyvtárakban. Általában egy vagy több rendszerkönyvtárat használ az alapértelmezett linker. Ha valamilyen keresett szimbólum definícióját tartalmazó objektumfájlt találunk, a linker beillesztheti azt (a fájlt) a futtatható fájlba (statikus linkelés esetén), vagy elhalaszthatja a program indulásáig (dinamikus linkelés esetén). .

A linker feladata az, hogy minden modulban meghatározatlan nevekre hivatkozásokat definiáljon és kapcsoljon össze. Minden importált név definíciója megtalálható más modulokban, a név említését a cím helyettesíti .

A linker általában nem hajtja végre az eljárás- és funkcióparaméterek típus- vagy számellenőrzését. Ha erősen tipizált nyelven írt programok objektummoduljait kell kombinálni, akkor a szükséges ellenőrzéseket egy további segédprogramnak kell elvégeznie a linker elindítása előtt.

Lásd még

Jegyzetek

  1. John R. Levine. Összekötők és rakodók. - 1999. - S. 1 .
  2. IBM Corporation. IBM OS Linkage Editor és Loader  (határozatlan) . – 1972.

Irodalom