Jūs esateŽurnalai / Ernestas Kardzys's blog / makefile pavyzdys
makefile pavyzdys
Jeigu programuojate su C/C++, turbūt dažnai tenka nurodyti daugybę C++ failų g++ programai (kažkas tokio: g++ failas.cpp kitas_failas.cpp desimtas_failas.cpp ir t.t.). Nepatogu.
Problemą padės išspręsti makefile failiukas, kuris įvedus make tvarkingai sukompiliuos programą.
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=failas.cpp kitas_failas.cpp dar_vienas_failas.cpp paskutinis_failas.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=programos_pavadinimas
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm -rf *o programos_pavadinimas
SOURCES eilutėje, atskirdami tarpu, išvadinkite savo kompiliuojamus failus, EXECUTABLE eilutėje įrašykite sukompiliuotos programos vardą (komanda: g++ -o programos_vardas). Kai norėsite išvalyti katalogą nuo objektinių failų, įveskite make clean
Visas smagumas atrodo maždaug taip:
$ cd a048/
$ make
g++ -c -Wall a048.cpp -o a048.o
g++ -c -Wall sorting.cpp -o sorting.o
g++ -c -Wall actions.cpp -o actions.o
g++ -c -Wall filesystem.cpp -o filesystem.o
g++ a048.o sorting.o actions.o filesystem.o -o a048
$ ./a048
$ make clean


Pasižiūrėsiu. Nebent savaitgalį - darbo dienomis man sunkiai sekas. Labai tingis vakare dar prie kompo sėsti po 8h kompiuterinės darbo dienos :D
Kaip sakoma, nieko nežadu :)
Nezinau, kiek geros tavo zinios sioje srityje, bet su makefilais pastarosiomis dienomis susiduriu pirma karta rimteliau, todel butu labai idomu ka nors rasti ir lietuvishkai. Deja, visagalis googlas geriausia ka rado, tai tavo puslapiuka. Jei tikrai gerai juose gaudaisi, galetum ka nors parasyti? Nes linux'sistu gretos tikrai dideja ir manau kas nors panashaus kaip "Makefailu pradziamokslis zaliems" butu naudingas ir tikrai turetu savo auditorija. Jei tureciau kompetencijos meikuose, pasiulyciau bendradarbiauti, bet kol kas tik beginner levelyje esu ir kremtu eng manualus bei pavyzdukus.
Tai aš ir neverčiau - palikau anglišką :)
Galejai ir labiau sulietuvinti(daugiau paaiskinimu, papildomu galimybiu)
http://mrbook.org/tutorials/make/
Skelbti naują komentarą