Linuxis kompileerimine puust ja punaseks

Allikas: Kuutõrvaja
Redaktsioon seisuga 30. jaanuar 2012, kell 19:28 kasutajalt Jj (arutelu | kaastöö)

Enamus programme teevad nn "päringuid" (calls) operatsioonisüsteemi teenuste suunas. Näiteks: "ütle mulle jooksev kellaaeg" või "mis kasutajad on sisse loginud".

Kuna programeerijatele oleks tüütu neid käske teostavaid koodijuppe uuest ja uuesti kirjutada on tehtud neist eraldi funktsuioonid mis koondatud kogumikesse ehk ingliskeeles "libraries". Nii peavad programeerijad kirjutama algkoodi vaid viiteid (function calls) neile funktsioonidele.

Sedamoodi funktsioone kasutava inimloetaval tekstikujul asetseva programmifaili kompileerimine toimub järgnevalt.

  1. Kompilaator programm loeb algkoodiks olevat faili ja mätsib selle tulemusel kokku binaarfaili mida kutsutakse object failiks. Tegemist on binaarse (masinloetava) versiooniga programmeerija algkoodist kus ära märgitud kohad, milledes viidatud "libraries" asuvatele funktsioonidele
  1. Järgmine samm on "linkimine" ehk siis käivitatakse programm nimega linker mis loeb läbi kompilaatori objektifailid, library failid ja asendab programeerija viited library failist pärineva koodiga. Peale seda asendust on tulemuseks käivitatav koodifail.

Linuxis tegeleb make nimeline käsurea programm nii kompileerimise kui ka linkimisega.