Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

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

[es] :: C/C++ programiranje :: HOWTO: Kako kompajlirati program u C-u (primer za gcc)

[ Pregleda: 5699 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.zonnet.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon HOWTO: Kako kompajlirati program u C-u (primer za gcc)16.12.2004. u 21:40 - pre 235 meseci
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:
http://www.elitesecurity.org/tema/5268/0#41465
http://www.elitesecurity.org/tema/13853/0#100401
http://www.elitesecurity.org/tema/34154/0#232778
http://www.elitesecurity.org/tema/61457/0#391142
http://www.elitesecurity.org/tema/72386/0#459690

f
 
Odgovor na temu

veljko77
NS

Član broj: 25340
Poruke: 17
195.252.100.*



Profil

icon Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc)21.02.2005. u 07:20 - pre 233 meseci
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
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.et.tudelft.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc)21.02.2005. u 09:22 - pre 233 meseci
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
 
Odgovor na temu

Voodoo
Novi Beograd

Član broj: 3508
Poruke: 488
*.etf.bg.ac.yu.



+1 Profil

icon Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc)21.02.2005. u 18:07 - pre 233 meseci
Takodje postoji i

Code:
int main(int argc, char *argv[], char *envp[])


koji u envp upisuje niz environment varijabli (moze nekom zatrebati).
 
Odgovor na temu

PeRuN_RoJs
kosjeric

Član broj: 67848
Poruke: 46
*.vdial.verat.net.



Profil

icon Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc)18.09.2005. u 15:39 - pre 226 meseci
Logicnije je:
Code:
void main ()
{
printf ("\nHello world!\n");
}

prevodjenje u visual microsoft studio 6-u nije nikakav problem
Don't look at me, I'm lost too.....
 
Odgovor na temu

PeRuN_RoJs
kosjeric

Član broj: 67848
Poruke: 46
*.vdial.verat.net.



Profil

icon Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc)18.09.2005. u 15:41 - pre 226 meseci
Ne vidim razlog za koricsenje f-ja (mislim klasicnih) kada je u pitanju glavni program, tj. main
Don't look at me, I'm lost too.....
 
Odgovor na temu

kurt.hectic
Kurt Hectic

Član broj: 66049
Poruke: 25
*.etf.bg.ac.yu.



Profil

icon Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc)18.09.2005. u 16:06 - pre 226 meseci
razlog je sto nije dozvoljeno standardom: http://www.eskimo.com/~scs/C-faq/q11.12.html
 
Odgovor na temu

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Re: HOWTO: Kako kompajlirati program u C-u (primer za gcc)18.09.2005. u 16:41 - pre 226 meseci
I, takodje pogledaj DevC, Lepo pise da main MORA DA BUDE int (nista void).

Standard...

 
Odgovor na temu

[es] :: C/C++ programiranje :: HOWTO: Kako kompajlirati program u C-u (primer za gcc)

[ Pregleda: 5699 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.