Programmeerimiskeel C/Kompileerimine

Allikas: Vikiõpikud
Komp.PNG

Kompileerimine[muuda]

Kompileerimine on tõgendav protsess. Protsess, mis C koodi tõlgib masinkoodi, mis on binaarkeeles ja arusaadav arvutitele. Kuigi portsess on keerulisem, annab see põhimõtte kompileerimisest.

Et kompilaator ei peaks iga kord kogu koodi kompileerima, tõlgitakse see esmalt "objekti failiks" (.o - faililaiend)(standard ja oma kirjutatud #include direktiivid on juba .o faililaiendis ja neid ei pea ümber kompileerima). Kui kõik objektifailid on loodud, kogub "viitur" kõik failid kokku ja loob lõpuks käivitatava faili. Nõnda kui muudetakse vaid koodifaili, on vaja ainult see uuest kompileerida ja rakendus tuleb üle viidata.

Ilma laskumata detailidesse jagunev kompileerimis protsess:

Preprotsessor[muuda]

Selles staadiumis töödeldakse "preprotsessori direktiive". Need sisaldavad #define'ne, #include'de, maksrosid ja #pragma kompilaatori sätestusi. Preprotsessori lõpuks saadakse teksti string.

Süntaksi kontrollimine[muuda]

See aste kindlustab, et on kirjutatud kood, mis on korrektne ja kas sellest saab programm.

Objekti Kood[muuda]

Kompilaator tagastab masinkoodi mis on samaväärne kirjutatud koodiga, millest pärast viitamist saab lõplik programm. See osa kontrollib kas koodi sisu on korrektne, mille korral luuakse käivitatav fail.

Viitamine[muuda]

Linkimine ühendab eraldi seisvad objekti koodid üheks terviklikuks programmiks, lisades viidatud teegid ja koodi lõplikule käivitava faili formaati.

Kompileerimis staadiumi peatamis võtmed[muuda]

-E peatab koodi pärast preprotsessorit. Kõik preprotsessori direktiivid on asendatud tavalise koodiga. Saad täispikka koodi.
-S Peatab peale kompileerimist. Saad assambler koodi
-c peatab assembleri faasis, kuid jätab linkimise vahele. Saad objekti koodi

Erinevad kompileerijad[muuda]

Erinevaid kompileerijaid on palju, seega lühidalt - tavaliselt kasutatakse Unix tüüpi masinatel terminali põhist kompileerimist ja MS Windows'il Kasutaja Liidese Põhist(IDE) süsteemi, mis võimaldab teksti redigeerida/koodi kompileerida/loodud programmi käivitada.

GCC (Unix, Linux, Solaris (jne.))[muuda]

Liht kompileerimine[muuda]

  1. Kui oled valmis kirjutanud koodi, salvesta see ".c" faililaiendisse (selleks võid kasutada koodiredaktorit nt: Scite)
  2. Ava terminal ja liigu kausta, kus fail salvestatud on
  3. Kompileeri kood käsuga
    gcc -o pogramm kood.c
    
  4. Kui programmi kompileerimisel ei esinenud vigasid, saad antud programmi käivitada käsuga
    ./programm
    

Lisaks:

cd .. - viib 1 kataloogi võrra juurkaustale lähemale
cd Desktop - sisene kataloogi Desktop
ls - kuva elemendid antud kataloogis

Mitme faili kompileerimine üheks käititatavaks failiks[muuda]

  • Sama, mis oleks lihtsa kompileerimise puhul, vahega et kompileerides lisad teise kodifaili ka
    gcc -o pogramm kood_1.c kood_2.c
    

2 võimalus:

  • Kompileeri koodid objektidena
    gcc -c -o pogramm kood_1.c
    
    gcc -c -o pogramm kood_2.c
    
  • Ja lingi nad omavahel
    gcc pogramm ./kood_1.o ./kood_2.o
    

Abi/Manuaali otsimine[muuda]

Kui sa tahad otsida manuaalist kuidas mingi funktsioon töötab, või mis lisa lipukesi läheb antud teegil kompileeridas vaja, on süsteemi juba alamsüsteemina sisse ehitatud manuaalid. Kui sa tahad otsid kindlat teemat, kirjuta terminali vastavalt:

  • Üldkuju:
    man teema
    
  • Näide:
    man printf
    

Otsida võid ka teemasid mis sisaldavad teatud sõna:

  • Üldkuju:
    man -k teemas_sisalduv_sõna
    
  • Näide:
    man -k math.h
    

Bloodshed Dev-C++[muuda]

NB: Bloodshed Dev-C++ kompilaator on saadaval ka eesti keelsena ja on tasuta tarkvara.

  1. Salvesta kood faililaiendiga ".c", mitte "cpp" mida pakutakse
  2. Vajuta funktsiooni klahvi "f9" või vali menüüst "Execute" -> "Compile&Run"

Microsoft Visual Studio/Express C++ 2005[muuda]

Tegemist on küll C++ kompilaatoriga, kuid pärast veidikes modifitseerimist saad kasutada ainult Programmeerimiskeelt C. Selleks tuleb:

  1. Vali uue projekti alustamisel, Win32 console application. Sealt Console application ja Empty project
  2. Lisage iga cpp-faili algusesse lause #pragma warning(disable : 4996).
  3. Ülejääd seadistus peaks paigas olema, kuid kui esineb tõrkeid, tuleks kontrollida kas:
    1. Active solution configuration oleks Debug
    2. Linker – Debugging – Generate debugging info oleks jah
    3. C/C++ - General – Debug information format peab olema Program database for edit and continue /ZI

Kompileerimise kohta:

  1. Kui kood on kirjutatud, salvestad projekt ".cpp" faililaiendiga.
  2. funktsiooni klahv "f5" käivitab kompileerimise ja käivitab loodud programmi
  3. funktsiooni klahv "f9" seab peatuspunkte
  4. funktsiooni klahv "f8"' ga on võimalik projekt sammhaaval läbi käia
  5. funktsiooni klahv "f1"' ga on võimalik avada manuaal

Ülessanded[muuda]