[ filmil @ 16.12.2004. 21:33 ] @
| 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.cc:
Code:
#include <iostream>
int main(void)
{
std::cout << "Hello world" << std::endl;
return 0;
}
Prevođenje i pokretanje (kuca se tekst iza znaka $):
Code: filip@cow:~
$ g++ -o hello hello.cc
filip@cow:~
$ ./hello
Hello world
filip@cow:~
$
Značenje:
g++ - 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.cc - ime datoteke u kojoj se nalazi program. Ekstenzije za C++ programe su obično: .C, .cc, .cpp. Sasvim je svejedno koju ćete izabrati.
./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 |
[ miličić.marko @ 17.03.2005. 17:41 ] @
--
Kako kompajlirati C++ izvorni kod pod Linuksom?
--
Da bi uspešno kompajlirali vaš C++ izvorni kod pod Linuksom, morate imati alate, kojima bi ste to uradili. Ako koristite bilo koju ozbiljniju distribuciju (Slackware, Debian, SuSE...) šanse su 99% da imate sve što vam je potrebno. Bilo kako bilo, potreban vam je kompajler (najčešće je to gcc/g++ i alatka make).
Ovde će biti reči o tome kako kompajlirati C++ kod u konzoli.
Da bi sve bilo jasnije, pretpostavimo da radite na projektu koji se zove "pitalica" i koji radi sa klasama "osoba" i "pitanje". VEOMA je dobra praksa da svaku klasu čuvate u posebnom fajlu. Poštujući ovo, projekat bi trebao da ima sledeće fajlove:
- main.cpp
- osoba.h
- osoba.cpp
- pitanje.h
- pitanje.cpp
U *.h fajlovima se nalaze deklaracije a u *.cpp fajlovima definicije odgovarajućih klasa.
Sada treba automatizovati proces kompajliranja korišćenjem alatke "make". Postojećim fajlovima, dodajemo fajl:
- makefile
čija je struktura krajnje jednostavna. Naime, "makefile" fajl se sastoji od niza pravila koja definišu zavisnosti izmedu izvornih fajlova. Evo kako se pišu ove zavisnosti:
ime_izvršnog_fajla: spisak_fajlova_korišćenih_fajlova_rastavljeni_razmakom
komada_kojom_se_vrši_kompilacija
*NAPOMENA: drugi red mora početi tabulatorim (tab-om)
Na primer, za naš slučaj "makefile" ima sledeći sadržaj:
main: main.cpp osoba.h osoba.cpp pitanje.h pitanje.cpp
g++ -o main main.cpp pitanje.cpp osoba.cpp
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.