Vad är länkare och hur fungerar de?
Länkare är en typ av programvara som kopplar samman objektfiler och bibliotek för att skapa en körbar fil. De används i utvecklingen av operativsystem, applikationer och annan programvara. Länkare tar objektfilerna som genereras av kompilatorer och bibliotek som indata och genererar en körbar fil som output.
Linkers utför flera funktioner, inklusive:
1. Lösa symboliska referenser: När ett program är skrivet på ett högnivåspråk kan det innehålla symboliska referenser till funktioner eller variabler som inte är definierade i den aktuella källkoden. Länkaren löser dessa referenser genom att hitta definitionerna av funktionerna eller variablerna i andra objektfiler eller bibliotek.
2. Flytta kod och data: När objektfiler genereras av kompilatorn kan de innehålla kod och data som är relativa till objektfilens plats. Länkaren flyttar denna kod och data till rätt plats i den körbara filen.
3. Ta bort onödig kod och data: Länkaren kan ta bort kod och data som inte behövs i den slutliga körbara filen, vilket minskar dess storlek och förbättrar dess prestanda.
4. Skapa en körbar fil: Länkaren tar objektfilerna och biblioteken som indata och genererar en körbar fil som kan köras på målmaskinen.
Det finns flera typer av länkar tillgängliga, inklusive:
1. Dynamiska länkar: Dessa länkar skapar en körbar fil som innehåller en referens till biblioteken och andra objektfiler som den beror på. När programmet körs, laddar den dynamiska länken dessa beroenden och löser eventuella symboliska referenser vid runtime.
2. Statiska länkar: Dessa länkar skapar en körbar fil som innehåller alla beroenden som är inbäddade i den. Det betyder att programmet kan köras utan några ytterligare beroenden, men det betyder också att storleken på den körbara filen blir större.
3. Delade länkar: Dessa länkare skapar en körbar fil som innehåller delade bibliotek, som är samlingar av kod och data som kan användas av flera program. När ett program länkas mot ett delat bibliotek, ingår bara de specifika funktionerna och variablerna som behövs i den slutliga körbara filen. Sammanfattningsvis är länkar en viktig del av mjukvaruutvecklingsprocessen, eftersom de tar objektfilerna som genereras av kompilatorer och bibliotek och skapa en körbar fil som kan köras på måldatorn. De utför flera funktioner, inklusive att lösa symboliska referenser, flytta kod och data, ta bort onödig kod och data och skapa en körbar fil. Det finns flera typer av länkar tillgängliga, inklusive dynamiska, statiska och delade länkar.