Programmeerimiskeel C/Kompilleerimine

Allikas: Wikibooks

Komp.PNG

Sisukord

[redigeeri] Kompilleerimine

Kompilleerimine 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 kompilleerimisest.

Et kompillaator ei peaks iga kord kogu koodi kompilleerima, tõlgitakse see esmalt "objekti failiks" (.o - faililaiend)(standard ja oma kirjutatud #include direktiivid on juba .o faililaiendis ja neid ei pea ümber kompilleerima). 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 kompilleerida ja rakendus tuleb üle viidata.

Ilma laskumata detailidesse jagunev kompilleerimis protsess:

[redigeeri] Preprotsessor

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

[redigeeri] Süntaksi kontrollimine

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

[redigeeri] Objekti Kood

Kompillaator 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.

[redigeeri] Viitamine

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

[redigeeri] Kompilleerimis staadiumi peatamis võtmed

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

[redigeeri] Erinevad kompilleerijad

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

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

[redigeeri] Liht kompilleerimine

  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 kompilleerimisel 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

[redigeeri] Mitme faili kompilleerimine üheks käititatavaks failiks

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

2 võimalus:

  • Kompilleeri 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
    

[redigeeri] Abi/Manuaali otsimine

Kui sa tahad otsida manuaalist kuidas mingi funktsioon töötab, või mis lisa lipukesi läheb antud teegil kompilleeridas 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
    

[redigeeri] Bloodshed Dev-C++

NB: Bloodshed Dev-C++ kompillaator 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"

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

Tegemist on küll C++ kompillaatoriga, 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

Kompilleerimise 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

[redigeeri] Ülessanded

Teistes keeltes