Почетак › Форуми › Линукс › Програмирање › kako se kompajlira sa svojim hederima
- This topic has 10 одговора, 5 гласова, and was last updated 22 years раније by
djvujke.
-
АуторЧланци
-
21. јул 2004. у 6:37 pm #3991
djvujke
Учесник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. јул 2004. у 12:13 am #20425RiSK
УчесникNemam 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. јул 2004. у 11:49 pm #20426goxon
Учесникkompajliras 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. јул 2004. у 7:53 am #20427djvujke
Учесникkako 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. јул 2004. у 8:19 am #20428djvujke
Учесникdakle kako ide ceo postupak kompajliranja ovog koda?
treba prvo onaj myfuncs.cpp ali kako?1. август 2004. у 11:27 pm #20429basic
Учесникdakle 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. август 2004. у 8:17 am #20430djvujke
Учесникa kako pravim make da on sam to sve odrqadi ako kojim slucajem ja budem umeo da napisem neki kopleksni program
2. август 2004. у 8:09 pm #20431basic
Учесникa 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. август 2004. у 6:51 pm #20432djvujke
Учесникpa . . ovaj .. imali nesto lakse za taj make
6. август 2004. у 7:04 pm #20433popeye
Главни мајсторNaravno. Plati nekom da uradi šta ti je potrebno.
-
АуторЧланци
Мораш бити пријављен да би поставио коментар у овој теми.