[ istrazivac @ 01.05.2001. 02:34 ] @
| Evo mene opet sa jos jednim pitanjem.Ovaj put me interesujenesto u vezi GCC .Naime ja sam pomalo radio u C-u i u C++,ali najvise na Visual C++,naravno na windows platformi.Sada sam presao na linux i posle svih onih malih zajebancija i "upoznavanja" sa sistemom i nekim novim konceptima,resih malo da pocnem da se zanimam i programiranjem.Nisam jos stigao ni da vidim koje su biblioteke i zasta sluze(mislim na one "nestandardne") a vec je izkrsao problemcic sa kojim se rvem vec par dana.Naravno pre svega sam procitao tonu dokumenata i resio da napisem nesto prosto u fazonu hello.c programa samo da vidim kako sve funkcionise i shvatio da program ne moze da nadje stdio.h niti bilo koju drugu datoteku koja je navedena u preprocesoru.Potrazio sam je na disku i video da se ona nalazi u nekom stotom podfolderu koji pocinje sa usr/lib/... itd.E mene sada interesuje gde on po defoultu trazi H datoteke i kako se to menja ,jer mi konstantno izbacuje gresku u kojoj kaze da stdio.h ne moze da nadje.I uzgred uz ovo pitanje,ako nekoga ne mrzi jos nesto od korisniji opcija pri koriscenju samog kompajlera jer koliko sam primetio ima stotinak opcija,a ja ne mogu bas da razgranicim sta je korisno sa cestu upotrebu a sta mi nikada nece zatrebati.A kada vec pitam,da pitam i ovo,koje biblioteke,i gde da ih nadjem koje se ticu mrezne komunikacije.Znam da vama mozda moja pitanja zvuce smesno,ali sta cu,kada sam najbolje godine zivota ostavio u windowsu u kome je sve na dohvat ruke i koji,da budem iskren prema samom sebi,zaglupljuje korisnika,zato pomagajte ako znate,a ako morate da se smejete,smejte se,jer i jeste za smeh,ali sta cu,nije ni meni lako poimanje cinjenice da mi je rad iz komandne linije bio nocna mora,ali evo malo se navikoh ovih dana.Pozdrav svima i hvala unapred. |
[ tuzlaorg @ 01.05.2001. 06:50 ] @
Ako hoces da programiras program u C++-u
nazovi file hello.C ili hello.cpp ;
i onda g++ hello.C/cpp
Ako hoces da programiras u C-u
onda nazovi file hello.c
i onda gcc hello.c
:)
[ Vojislav Milunovic @ 01.05.2001. 18:50 ] @
Heder filove mozes da nadjes /usr/include a biblioteke su drugo,biblioteke su kompajlirane standardne funkcije ili kakve vec koje program poziva pri izvrsavanju.
Sto se tice net programiranja na UNIXu se koriste socket()-i tipa AF_INET i struktura sockaddr_in koja ima sve sto ti treba za komnukaciju izmedju dva tcp ili udp protokola.
Heder fajlovi su sys/socket.h , netinet/in.h i arpa/inet.h dok za razlucivanje imena putem DNSa koristis netdb.h koja sadrzi strukturu hostent i deklaraciju funkcija gethostbyname i gethostbyaddr tj funkcije za dobijanje IP iz imena i obratno iz IP dobijanje imena (reverse query DNSu).
Od korisnih opcija gcc-u je -pipe gde se komunikacija unutar samog kompajlera vrsi putem pipe()-ova a ne putem tmp filova i na taj nacin se svakako ubrzava kompajlrianje takodje nije ponekad lose koristiti optimizaciju samo koda -O ali to manje vise. Nekad nije lose koristiti
-fomit-frame-pointer da se ebp register ne koristi kao frame(stack) pointer,ako se nevaram tako se kompajlira i Linux kernel.
e da zaboravih i opciju -static : ona sve funkcije iz biliotkea kompajlira u program tako da se funkcije pozivaju iz programa a ne preko biblioteka koje se ucitavaju u memoriju s tim se i program poveca sa 60kb na 1MB :o)
[ m r v a @ 01.05.2001. 20:57 ] @
Citat:
predator wrote:
e da zaboravih i opciju -static : ona sve funkcije iz biliotkea kompajlira u program tako da se funkcije pozivaju iz programa a ne preko biblioteka koje se ucitavaju u memoriju s tim se i program poveca sa 60kb na 1MB :o)
Jel' onda sa tom opcijom se moze binarni fajl preneti na drugu masinu ( iste procesorske struktra kao i izvorna masina ) i bez problema izvrsiti .....naravno uz chmod dodatak ???
[ Vojislav Milunovic @ 01.05.2001. 23:58 ] @
Pa da ,recimo imas komapjlrian sniffit za Linux sa static i recimo haknes neki system i tamo nemas gcc (recimo RH kad se bira iz menija za instlaciju mozes i da izbacis gcc) e onda se lepo nakacis na net skines taj svoj sniffer staticki kompajliran i udri po njima :o)
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.