Länkare

Från Wikipedia
Hoppa till: navigering, sök

En länkare är ett datorprogram som tar en eller flera objektfiler och kombinerar dem till en exekverbar fil. Därmed kan delar av ett datorprogram underhållas, kompileras och distribueras skilt från varandra. Länkningen sker efter att programmets olika delars källkod har kompilerats till maskinspråk.

Orsaken till att man vill dela upp programmet i olika delar som måste länkas samman är vanligen att delarna underhålls skilt från varandra. Någon av filerna som länkas samman kan till exempel ge tillgång till funktioner i operativsystemet eller i självständiga programbibliotek och underhålls och distribueras med dessa. Större datorprogram delas ofta upp i moduler som skrivs, underhålls och kompileras skilt också då modulerna underhålls inom samma organisation eller till och med av samma person.

I allmänhet länkas delarna som hör till ett program ihop direkt efter att de kompilerats, innan de distribueras eller installeras, men programmet kan använda programbibliotek avsedda att länkas in dynamiskt strax innan programmet skall köras eller under körningen. I en del operativsystem, såsom GNU/Linux, länkas en del systembibliotek alltid eller nästan alltid dynamiskt.

Då ett program körs refererar programkoden till olika funktioner genom deras adresser i minnesrymden, som är oberoende av de filer koden kommer från. Länkaren (eller länkarna, i de fall en del av länkningen sker senare) måste se till att de olika delarna av programmet hamnar på olika ställen i minnet och att olika delar av programmet kan referera till funktionerna med rätt adresser. Detaljerna i processen varierar mellan olika operativsystem och i viss mån också beroende på programmeringsspråk, kompilator och länkare.