Erinevus lehekülje "Linuxis kompileerimine puust ja punaseks" redaktsioonide vahel
3. rida: | 3. rida: | ||
Kuna programeerijatele oleks tüütu neid käske teostavaid koodijuppe uuest ja uuesti | Kuna programeerijatele oleks tüütu neid käske teostavaid koodijuppe uuest ja uuesti | ||
− | kirjutada on tehtud neist eraldi | + | kirjutada on tehtud neist eraldi funktsioonid mis koondatud teekide nimelistesse kogumikesse (ingliskeeles "libraries"). |
− | Nii peavad programeerijad kirjutama algkoodi vaid viiteid (function calls) | + | Nii peavad programeerijad kirjutama algkoodi neile funktsioonidele vaid viiteid (function calls). |
Sedamoodi funktsioone kasutava inimloetaval tekstikujul asetseva programmifaili | Sedamoodi funktsioone kasutava inimloetaval tekstikujul asetseva programmifaili | ||
kompileerimine toimub järgnevalt. | kompileerimine toimub järgnevalt. | ||
− | # Kompilaator programm loeb algkoodiks olevat faili ja mätsib selle tulemusel kokku asja mida kutsutakse object tüüpi failiks. Tegemist on binaarse (masinloetava) versiooniga programmeerija algkoodist kus märgitud viited | + | # Kompilaator programm loeb algkoodiks olevat faili ja mätsib selle tulemusel kokku asja mida kutsutakse object tüüpi failiks. Tegemist on binaarse (masinloetava) versiooniga programmeerija algkoodist kus märgitud viited teekides asuvatele funktsioonidele. |
− | # Järgmine samm on "linkimine" ehk siis käivitatakse programm nimega linker mis loeb läbi kompilaatori objektifailid, | + | # Järgmine samm on "linkimine" ehk siis käivitatakse programm nimega linker mis loeb läbi kompilaatori objektifailid, teegid ja asendab programeerija viited teekidest pärineva koodiga. Peale seda asendust on tulemuseks käivitatav koodifail. |
Linuxis tegeleb make nimeline käsurea programm nii kompileerimise kui ka linkimisega. | Linuxis tegeleb make nimeline käsurea programm nii kompileerimise kui ka linkimisega. |
Redaktsioon: 1. veebruar 2012, kell 18:12
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 funktsioonid mis koondatud teekide nimelistesse kogumikesse (ingliskeeles "libraries"). Nii peavad programeerijad kirjutama algkoodi neile funktsioonidele vaid viiteid (function calls).
Sedamoodi funktsioone kasutava inimloetaval tekstikujul asetseva programmifaili kompileerimine toimub järgnevalt.
- Kompilaator programm loeb algkoodiks olevat faili ja mätsib selle tulemusel kokku asja mida kutsutakse object tüüpi failiks. Tegemist on binaarse (masinloetava) versiooniga programmeerija algkoodist kus märgitud viited teekides asuvatele funktsioonidele.
- Järgmine samm on "linkimine" ehk siis käivitatakse programm nimega linker mis loeb läbi kompilaatori objektifailid, teegid ja asendab programeerija viited teekidest pärineva koodiga. Peale seda asendust on tulemuseks käivitatav koodifail.
Linuxis tegeleb make nimeline käsurea programm nii kompileerimise kui ka linkimisega.
Seda protsessi iseloomustab hästi allolev skeem:
Ehk siis meil on näiteks koodifail nimega main.c, kompilaatoriga genereeritakse sellest main.o ning linker loob main.o failist omakorda lõpliku käivitatava main binaarfaili.
Ingliskeelsed viited
Eestikeelsed viited