Početak›Forumi›Linuks›Programiranje›kako se kompajlira sa svojim hederima
- This topic has 10 odgovora, 5 glasova, and was last updated 19 years, 8 months ranije by djvujke.
-
AutorČlanci
-
21. jul 2004. u 6:37 pm #3991djvujkeUčesnik
napises program , i normalno imas svoje hedere
i recimo sve to radi , recimo da radi
i sad ide ono
gcc -o main.cpp
e ali on tu trazi ove moje hedere koja sad opcija ide
za moje hedere i moje biblioteke
hm?22. jul 2004. u 12:13 am #20425RiSKUčesnikNemam pojma za gcc… Po drugim kompajlerima sudeci:
– header fajlovi trebaju da budu u istom direktorijumu kao i glavni program ili u nekom specijalnom direktorijumu
– probaj da “build”-ujesh umesto kompajliranja, ili kompajliraj prvo sve module, pa onda glavni program.POz
22. jul 2004. u 11:49 pm #20426goxonUčesnikkompajliras preko make fajlova pa ti malo dzvirni kako se oni prave da ja ovde nadugo i nasiroko ne kucam a mozes i preko kdevelopa sa uzivanjem jer ce on sam da napravi to sto oces tj make file
vozzz23. jul 2004. u 7:53 am #20427djvujkeUčesnikkako se kopajlira ovaj kod koji ima tri fajla. i kako se
uopste prave lib fajlovi? Koji je redosled kompajliranja
ova tri fajla. Heder se isto kompajlira?
====================================main.cpp=====================
#include
#include “myfuncs.h”
main(){
printf(“glavni programn ovo fja iz pomocnogn”);
printf(“%s”,GetString());
}
============================myfuncs.h============================
extern char *GetString(void);
============================myfuncs.cpp==========================
char ss[] = “The Programing Under Linux “;char *GetString(void){ return ss; }
30. jul 2004. u 8:19 am #20428djvujkeUčesnikdakle kako ide ceo postupak kompajliranja ovog koda?
treba prvo onaj myfuncs.cpp ali kako?1. avgust 2004. u 11:27 pm #20429basicUčesnikdakle kako ide ceo postupak kompajliranja ovog koda?
treba prvo onaj myfuncs.cpp ali kako?U direktorijumu gde se nalaze sva 3 fajla otvori konzolu i upisi :
1. Nacin
g++ main.cpp myfuncs.cpp -o izvrsniProgram.ex2. Nacin
g++ -c myfuncs.cpp
g++ myfuncs.o main.cpp -o izvrsniProgram.exeDrugi nacin je zgodan jer prvo pravis objektnu datoteku pa je onda mozes
naknadno koristiti i u drugim programima
Ovo .exe ne treba za linux 😀 (mora za windows 😈 ) ali ne smeta
Inace kao sto rece goxon koristi kdevelop pa ce ti Makefile biti automatski kreiran
sto je zgodno za velike programe a za ovako male mozes i iz konzole.2. avgust 2004. u 8:17 am #20430djvujkeUčesnika kako pravim make da on sam to sve odrqadi ako kojim slucajem ja budem umeo da napisem neki kopleksni program
2. avgust 2004. u 8:09 pm #20431basicUčesnika kako pravim make da on sam to sve odrqadi ako kojim slucajem ja budem umeo da napisem neki kopleksni program
Makefile fajl za tvoj program treba da izgleda ovako:
////////////////////////////////////////////////////////
all:
CXXFLAGS=-g3 -march=athlon-xp # tvoj procesor(man gcc) i O2 za release
myfunk.o: myfunk.cpp myfunk.h
g++ $(CXXFLAGS) -c myfunk.cppall: izvrsniProgram
izvrsniProgram: main.cpp myfunk.o myfunk.h
g++ $(CXXFLAGS) main.cpp myfunk.o -o izvrsniProgramclean:
-$(RM) izvrsniProgram *.o
//////////////////////////////////////////////////////
Ako je variabla all definisana na pocetku(kao ovde) onda ce komanda -make- kreirati ceo
program a ako nije kreirace samo objektne(.o) datoteke a komanda -make all- ceo program
-make clean- cisti sve sto je make kreirao(VAZNO – ispred g++ nalazi se tabulator).
One fajlove u kojima izmenis kod komanda make ce auto. ponovo kompajlirati.
Komanda make je dosta slozena(ona je ustvari poseban programski jezik)pa je
najbolje da pogledas dokumentaciju(man, info itd.)
Na ovaj nacin mozes dodavati nove objekte(.h,.cpp fajlove) kao sto je kreiran myfunk.o.
CXXFLAGS variablu koja se nalazi u Makefile mozes da zaobidjes ako u konzoli
pre upotrebe -make- ukucas export CXXFLAGS=”-O2 -march=athlon-xp” (na primer).
Ipak je bolje koristiti neko IDE okruzenje(KDevelop za KDE, Anjuta,Glade za GNOME itd).6. avgust 2004. u 6:51 pm #20432djvujkeUčesnikpa . . ovaj .. imali nesto lakse za taj make
6. avgust 2004. u 7:04 pm #20433popeyeGlavni majstorNaravno. Plati nekom da uradi šta ti je potrebno.
-
AutorČlanci
Moraš biti prijavljen da bi postavio komentar u ovoj temi.