Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

HOWTO: Kako kompajlirati program u C-u (primer za gcc)

  • 7 odgovora
  • 7.222 pregleda

Najnovija ↓

HOWTO: Kako kompajlirati program u C-u (primer za gcc) 16.12.2004. u 22:40 · pre 266 meseci #1
Kako da prevedem (kompajliram) program u C-u?

U prethodnih nekoliko dana imali smo više pitanja o prevođenju (nerado koristim: kompajliranju) prvog programa u C-u.

Ovaj primer je za GNU C prevodilac.

Program smeštamo u datoteku hello.c:

Code:
#include <stdio.h>
       
 int main(void) 
 {
     printf("Hello world\n");
     return 0;
 }
       
       


Prevođenje i pokretanje (kuca se tekst iza znaka $):


Code:
filip@cow:~
 $ gcc -o hello hello.c
 filip@cow:~
 $ ./hello
 Hello world
 filip@cow:~
 $
       

Značenje:
gcc - ime GNU C prevodioca
-o hello - naređuje prevodiocu da datoteku koja se dobije prevođenjem nazove hello. Ako se ne navede opcija -o, dobiće se datoteka koja se tradicionalno zove a.out. C i C++ prevodioci se ovako ponašaju na svim Unix sistemima.
hello.c - ime datoteke u kojoj se nalazi program. Ekstenzija za C programe je: .c.
./hello - Pokreće program sa imenom hello u tekućem direktorijumu (./). Vrlo je bitno da ne izostavite tačku i kosu crtu.

Ostale poruke koje govore o sličnoj temi, dobijene pretragom foruma 6:
https://www.elitesecurity.org/t5268#41465
https://www.elitesecurity.org/t13853#100401
https://www.elitesecurity.org/t34154#232778
https://www.elitesecurity.org/t61457#391142
https://www.elitesecurity.org/t72386#459690

f
Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc) 21.02.2005. u 08:20 · pre 264 meseca #2
Jel neko moze da mi kaze sta znaci linija "int main(void)"
u kodu koji sledi :


Code:


#include <stdio.h>
       
 int main(void) 
 {
     printf("Hello world\n");
     return 0;
 }





... ili sta znaci linija "void main(void)"

U Krausovoj knjizi za C pise da postoji nekoliko "VRSTA" (ako sam se dobro izrazio) glavnih programa. Izmedju ostalog ovo su 2 od tih nekoliko. Neznam sta je time u programu postignuto.

Hvala!
Veljko
Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc) 21.02.2005. u 10:22 · pre 264 meseca #3
Citat:
Jel neko moze da mi kaze sta znaci linija "int main(void)"
.... U Krausovoj knjizi za C pise da postoji nekoliko "VRSTA" (ako sam se dobro izrazio) glavnih programa. Izmedju ostalog ovo su 2 od tih nekoliko. Neznam sta je time u programu postignuto.
int main(void) {...} je definicija funkcije u C-u. (pogledaj odeljak o definisanju funkcija u Krausovoj knjizi.)

Sama deklaracija se ne razlikuje uopšte ni od jedne druge deklaracije funkcije. Međutim, funkcija main je posebna po tome što se ona prva izvršava pri pokretanju programa. U neku ruku možemo da kažemo da je poziva operativni sistem. (Vodi računa da je ovo malo uprošćeno objašnjenje pošto zapravo izvršenje svakog C programa prethodi izvršenje funkcija iz runtime biblioteke koje podešavaju radno okruženje programa).

Zbog toga može da bude malo nejasno kuda putuje ono int i kada i kako ova funkcija može a kada ne može da ima parametre. Zato se dogovorno uzima da funkcija main uvek vraća nekakav celi broj (int) operativnom sistemu. Za nas sada nije bitno kako se taj broj dalje obrađuje. void main(void) i uopšte bilo koja definicija main u kojoj main ne vraća int nije u skladu sa važećim standardom jezika C pa ih ne treba koristiti. Krausova knjiga je zastarela u ovom pogledu,

Kako bi se obezbedilo prenošenje parametara u program, main ima još nekoliko varijanti deklaracije (sve su pomenute u Krausovoj knjizi), od kojih je najčešće korišćena:

Code:
int main(int argc, char *argv[])
 
 
Ona omogućava prenos parametara iz operativnog sistema u program. Ako je potrebno da program ima ulazne parametre, onda ćemo koristiti ovaj oblik. Ako program ne uzima parametre, onda je int main(void) dovoljno.

f
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme