31.12.2014 Views

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Bendros taisykl÷s (pattern rules) make-failuose<br />

Yra dar daug patogių dalykų, kurie palengvina programuotojo gyvenimą rašant<br />

make-failus. Mes aptarsime du iš jų: bendras taisykles <strong>ir</strong> automatinį o-failo prielaidų<br />

radimą.<br />

Kai turime dešimtis cpp-failų, tai visai neapsimoka prie kiekvieno iš jų rašyti g++ -<br />

c <strong>ir</strong> t.t.. Tuo tikslu galime aprašyti bendrą taisyklę, kaip iš cpp-failų gauti o-failus<br />

(analogiškai: iš o-failų gauti exe-failą). Pažvelkime į pagerintą make-failo variantą:<br />

# nicemake<br />

compile<br />

: CleverBoy.exe<br />

CleverBoy.exe : CleverBoy.o main.o<br />

CleverBoy.o : CleverBoy.cpp CleverBoy.h<br />

main.o : main.cpp CleverBoy.h<br />

#-------------------------------------------------------------<br />

clean:<br />

rm -f *.o<br />

rm -f *.exe<br />

build: clean compile<br />

%.exe: %.o<br />

g++ -o $@ $^<br />

%.o: %.cpp<br />

g++ -c $<<br />

Kadangi failo vardas n÷ra makefile (sk<strong>ir</strong>tingai nei visuose kituose pavyzdžiuose), tai<br />

turime naudoti parametrą -f:<br />

make -f nicemake<br />

Eilut÷s, esančios v<strong>ir</strong>š brūkšnio, nusako priklausomybes tarp failų. Eilut÷s, esančios<br />

žemiau brūkšnio, nusako bendras taisykles. Make-failo dalis žemiau brūkšnio pas<br />

mus bus bendra visiems projektams. Bendros taisykl÷s taikomos failams, pagal failų<br />

vardų pabaigas (.cpp .o .exe), vietoje specialiųjų simbolių įstatant atitinkamų failų<br />

vardus:<br />

$@ - tikslo failo vardas<br />

$< - p<strong>ir</strong>mojo prielaidos failo vardas<br />

$^ - visų prielaidos failų vardai, atsk<strong>ir</strong>ti tarpais<br />

17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!