Siin saad uurida ja valida töövahendeid.
Kui keel milles soovid programmeerida on valitud, siis tuleks järgmise instruktsiooni abil installida vastavad komponendid.
Unix on kirjutatud C/C++ keeles. Suurem osa pakette linuxes ja ka tuum on valmistatud selles keeles.
Programme ja teege saab kompileerida valmis lähtekoodist.
Kui vastavad C ja C++ arendus tööriistad (development tools) on peale installitud,
siis iga kasutaja saab oma kodukatalogis arendada ja siluda programme C/C++ keeles.
Installime/kontrollime C/C++ arendus vahendite paki
$ apt-get install build-essential
Alguseks sisestame näited käsureast.
Olles tavakasutaja kodukatalogis loome käsureast katalogi nimega devel ja lähme sinna sisse.
$ cd $HOME; mkdir devel; cd devel
Loome seal faili nimega hello.c (*.c on C keele lajend)
$ touch hello.c
$ nano hello.c
Paigutame faili järgmise teksti:
#include <stdio.h>
void main(){
puts("Hello World");
}
Kompileerime programmi lähtekoodist:
$ gcc hello.c
Resultaat vaikimisi paigutatakse faili a.out
Proovime käivitada seda faili
$ ./a.out
Välja peaks tulema:
Hello World
Kui programm töötab korrektselt võime kompileerimisel märkida väljund faili nime näiteks hello ja proovime käivitada :
$ gcc -o hello hello.c
$ ./hello
Proovi nüüd kompileeri ja uuri järgmiseid koodijuppe:
variables.c
// See on kommentaar (üksikrida - mis algap kaksik kaldkriipsuga)
/* See on mitmerealine kommentaar algab kaldkriipsu ja tärniga
ja lõppeb tärn ja kaldkriipsuga
# include käsk lisab kompileerimiseks pealdis faili kus kirjeldatakse
vajaminevaid definitsioone ja funktsioone
*/
#include <stdio.h>
// See on peafunktsioon millest iga C või C++ programm hakkab töötama
void main(){
// see on täisarv tüüpi muutuja
int count=5;
// see on ujuvkoma arv tüüpi muutuja
float f=1.23456;
// see on kaks korda mahukam ujuvkoma arv
double fd=23.536475867564;
// see on sümbol tööpi muutuja
char c='A';
// see on string mis koosneb sümbol tüüpi muutujatest
// mis peab lõppema nulliga
char *s="Mina olen string";
// see on väljundi formateerimis funktsioon, \n on rea vahetuse sümbol
printf("string=%s, sümbol=%c, ujuvkoma=%f, pikkujuvkoma=%f täisarv=%d\n",s,c,f,fd,count);
// loome täisarv massiivi
int m[4];
// täidame massiivi andmetega
m[0]=56; m[1]=13; m[2]=78; m[3]=91;
int i;
for(i=0; i<4; i++){
printf("m[%d]=%d, 0x%x\n",i,m[i],m[i]);
}
}
max.c
#include <stdio.h>
/*
Defineerime funktsiooni 'max'
mis võtab kaks parameetrid ujuvkoma arvudena
ja tagastab ujuvkoma arvuna suurema nendest
*/
float max(float a, float b){
if(a>b) return a; // kui a on suurem kui b tagastame a väärtuse
else return b; // vastasel juhul tagastame b väärtuse
}
void main(){
float x,y; -- defineerim kaks ujuvkoma muutujat
puts("Sisesta 2 arvu: "); // kirjutame ekraanile
scanf("%f %f",&x, &y ); // sisestame kaks ujuvkoma eraldades arvud reavahetusega
// Träkime sisetatud andmed välja
printf("a=%f, b=%f, suurim kahest arvust on %f\n", x, y, max(x,y) );
}
#include <stdio.h>
// Trükime välja programmi nime ja lisa parameetrid kui nad on sisestatud
// Programm tuleb käivitada käsureast lisades vajadusel mingi hulk parameetreid
int main (int argc, char *argv[])
{
int count;
printf ("This program was called with \"%s\".\n",argv[0]);
if (argc > 1){
for (count = 1; count < argc; count++)
{
printf("argv[%d] = %s\n", count, argv[count]);
}
}
else{
printf("The command had no other arguments.\n");
}
return 0;
}
hello2.cpp (*.cpp on c++ keele lajend)
// loeme sisse sisend/väljund funktsioonide definitsioonid
#include <iostream>
// võtame kasutusele standard tegide nimeruumala
using namespace std;
main(){
// väljastame stringi ja seejärel realõpu standard väljundisse
cout << "Hello CPP" << endl;
}
$ g++ -o hello2 hello2.cpp
Installime mugavams graafilise programmeerija töökeskonna IDE (Integrated Development Environment) nimega CodeBlocks
$ apt-get install codeblocks
Käivitame selle programmi peamenüüst graafilises režiimis.
Proovime kompileerida ülaltoodud programmid uusesti kuid CodeBocks-is.
Vaata täpsemalt:
Kui arendus vahendid on installitud
# sudo apt-get install build-essential checkinstall
Tuleks laadida alla kasutaja kodukatalogi vajaliku programmi lähtekood, mis harilikult on pakitud erinevate programmidega.
Tüüplaienditeks on siis *.tar.bz2 voi *.tar.gz.
Näiteks tõmbame veebist tarballname.tar.gz kus tarballname asemel peaks olema programmi nimi:
# wget http://some_site/tarballname.tar.gz
Tuleks pakida lahti katalogi lähtekood näiteks
# tar -xzvf tarballname.tar.gz
või
# tar -xjvf tarballname.tar.bz2
Mine paki katalogi
$ cd tarballname
Vaata kindlasti läbi README ja INSTALL failid kus võivad leiduda vajalikud näpunäited programmi kompileerimiseks
Konfigureerime parameetrid configure failis ja käivitame selle.
Käivitamisel kontrollitakse kas sõltuvad pakid ja moodulid asuvad süsteemis või mitte
# ./configure
Kompileerida valmis kasutades loomis reegleid make failis
# make
Installeerida kompileeritud programm süsteemi
# sudo make install
Clean koristab kõik ajutised failid mis olid paigutatud süsteemis kompileertimise ja installimise käigus
# clean install
# sudo apt-get build-dep source_package