PDA

Prikaži potpunu verziju : Linux i C++ programiranje


Andross
2.9.2006, 20:09
E ljudi imam problem.Jes da je ovo programiranje ali ima veze sa linuxom(tj. Ubuntuom 6.06 LTS).Ono sto mi treba je C++ kompajler i IDE pa ako neko moze da mi kaze gde to da skinem.A ako je vec instalirano(tj. onaj gcc paket)kako da pokrenem kompajliranje.Unapred hvala!

seymourc64
4.9.2006, 22:30
gcc -o (imefajla sa ekstenzijom c) (ime execute fajla(bez ekstenzije))

Andross
5.9.2006, 13:19
Cool.A C++ kompilacija?(tj. extenzija .cpp)

voodoo_
5.9.2006, 13:57
Uz KDE se dobija i kompletan IDE po imenu KDevelop (isto koristi gcc).

C++ programe ručno kompajliraš kao g++ -o ime-izvršnog-fajla ime-izvornog-fajla.cpp

Vodi računa da gcc izbacuje sitne programe zato što oni koriste sistemske biblioteke (glibc itd.). Nekad se možeš naći u situaciji da ti treba program koji će garantovano raditi na raznim verzijama linuksa, bez obzira koje verzije biblioteka imaju (a nećeš da razmišljaš da li će korisnik juriti nove verzije ako ih nema). Tada možeš da forsiraš statičko linkovanje (parametar -static). Jes da program izađe preko 1MB, al radi svuda.

PS. seymore obrnuo si redosled zadnja dva parametra.

Andross
6.9.2006, 12:42
Terminal kaze da ne prepoznaje komandu gcc(takodje ni g++)!Sta treba da instaliram da bi to radilo?

voodoo_
6.9.2006, 16:11
Verovatno nisi izabrao "Development" tokom instalacije Linuxa, to bi ti automatski instaliralo i gcc.
Al nema veze, sve distribucije sadrže gcc na instalacionim diskovima, idi u paket menadžer (koji je da je, Yast, Synaptic, šta već koristiš) i u searchu kucaj gcc.

Andross
10.9.2006, 13:54
Uspeo.Instalirao.Kompajlirao.Thanks guys!

Andross
4.1.2007, 20:21
Eh vratio se ja ponovo Linuxu napisao hello world cisto bezveze i nemogu da pokrenem exe!Dvaput klik na njega nece.Kako da iz terminala pokrenem taj exe i kako da linkujem drugi sa SDL dll-ovima?

voodoo_
4.1.2007, 20:26
./imeprograma

urke
4.1.2007, 20:27
U terminalu prvo treba da kompajliranom programu dodeliš exec flag sa
$ chmod +x program

Nakon toga, dovoljno je da odradiš jedno
./program

i program će da se pokrene.

holodoc
4.1.2007, 20:30
Kad ste već raspoloženi za odgovore (a iskreno mrzi me da brljam po literaturi :)) kakva je razlika između izvršnih fajlova koji se pokreću sa tačkom ispred i onih koji je nemaju. Primera radi pomenuto "./ime_programa" i "samo_ime_programa"?
Na ovo sam par puta naišao kada sam neke programe pokretao iz root naloga i bilo mi je malo čudno ali ne sumnjam da postoji valjan razlog :)

Andross
4.1.2007, 20:40
Eh hvala ljudi.Sad drugo pitanje.Posto instaliram libsdl1.2-dev kako da program pri kompajliranju linkujem sa njegovim bibliotekama?Dal da uradim:
g++ -o -libSDLmain -libSDL Zdravo Zdravo.cpp
ili nesto drugo?

VojaM
4.1.2007, 21:05
@holodoc
Na linuxu se ne podrazumeva da ti je trenutnu direktorijum (onaj u kome se trenutno "nalaziš") automatski u pathu, kao što je to u DOS-u i derivatima. Dakle, ako nisi baš u nekom diru koji je u pathu (a to ćeš videti komandom set, još jedna razlika u odnosu na DOS), a za to je velika verovatnoća, moraš da naznačiš pun path. Kako je tačka kraća oznaka za pun path trenutnog direktorijuma, stvar je jasna.

Postoji još nekoliko tih kraćih oznaka direktorijuma i to više nego u DOS-u.

Kao prvo, tu je "roditeljski" direktorijum .. (fajl iz tog dira pišeš kao ../imefajla; u DOS-u je isto samo sa obrnutom kosom crtom).

Kao drugo, tu je tilda (~). Sama tilda označava tvoj "home" (osnovni) korisnički direktorijum. Dakle, kad daš komandu cd ~ time odeš (na primer) na /home/holodoc ili kako to već ide na tvom sistemu.

Još jedna zanimljiva upotreba tilde u sličnom kontekstu (valjda važi za sve shellove) je ~<korisničko_ime> što može biti zanimljivo adminima. Ovo označava osnovni direktorijum dotičnog korisnika (naravno da moraš imati odgovarajuće privilegije da bi ti to bilo od koristi). Recimo, ja sam root na sistemu i hoću da odem na tvoj osnovni direktorijum, ali me mrzi da kucam celo ime (ili su na tvom sistemu korisnički direktorijumi na mnogo zakučastom mestu). Kucaću, dakle, cd ~holodoc i to će me baciti tačno gde treba (recimo na /home/holodoc). Ovo je naročito značajno u slučaju tzv. sistemskih naloga (naloga koje koriste pojedini servisi) jer može više naloga da deli isti direktorijum koji se onda, naravno, neće zvati isto kao ime korisnika.

Ove oznake mogu se i kombinovati. Česta je, recimo, kombinacija ../~ koja označava direktorijum koji je roditeljski tvom osnovnom direktorijumu.

Na kraju, napomena oko oznake za roditeljski direktorijum (..). Na DOS-u smo navikli da te dve tačke mogu da se kucaju bez razmaka posle komande CD. Međutim, sintaksa linux shellova je striktnija, tako da tu mora da se kuca razmak! Ko je zadrti DOS-ovac, može lako definisati alias za to i raditi onako kako je navikao...

holodoc
4.1.2007, 21:43
@VojaM
Nemoguće da je caka samo u tome :) Mislim znao sam za skraćenice za current i parent foldere (ovo sa jednom i dve tačke) ali mi iskreno nije palo na pamet da "ta" tačka može da znači "samo to" :D Znao sam čak i ovo sa tildom odnosno drugim rečima dosta sam dobro savladao konzolu uz pomoć Ubuntu-a ali me je stvarno bunilo ovo sa jednom tačkom :( Mislio sam da to striktno ima veze sa nekom vrstom privilegije ili zaštitne mere kao što je famozni "chmod +x" za exe fajlove.

Hvala na iscrpnom objašnjenju :)

A vidi, vidi,... Naš administrator se ne hvali da dobro poznaje i Linux :kreza: