Arendus vahendid

Siin saad uurida ja valida töövahendeid.

Kui keel milles soovid programmeerida on valitud, siis tuleks järgmise instruktsiooni abil installida vastavad komponendid.

Installing Compilers on Uuntu linux

C ja C++

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) );
}

argument.c

#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;
}

C++

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.

Lähtekoodist programmide kompileerimine

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

Kui mei huvitab kompileerida ümber tarkvara Ubuntu repositooriumist

# sudo apt-get build-dep source_package

Tuuma kompileerimine