Asigurați-ctruktura Makefile, mainloop

face - un utilitar pentru a construi în mod automat programe. Acesta vă permite să urmăriți modificările în codul sursă al programului și compila întregul proiect este nu numai acele fișiere care au fost modificate sau cei care depind de modificările. Pentru proiectele mari, acest lucru asigură economii semnificative de timp.

In acest articol voi încerca să-ți spun cum să creați un Makefile.

Regulile implicite construi sunt citite din fișierul numit Makefile.

Structura Makefile poate fi reprezentat după cum urmează:

Dar, de obicei, utilizate reguli mai complexe, cum ar fi:

SCOP - aceasta este ceea ce obținem ca rezultat al. Acest lucru poate fi un fișier, director, sau doar un obiectiv abstract nu are nici o legătură cu orice obiect de pe hard disk. După numele țintă precedat de două puncte. Când executați face cu nici un argument să urmeze prima regulă găsit. Pentru a efectua o altă regulă este necesar să se precizeze comanda make

Dependența - este ceva de care depinde scopul nostru. Acestea pot fi fișiere, directoare, sau în alte scopuri. Asigurați-vă compară obiectivele de schimbare data și ora și obiectivele care au ca scop depinde. În cazul în care obiectele pe care obiectivul a fost schimbat mai târziu decât obiectivul stabilit, acțiunea va fi efectuată. ACT, de asemenea, efectuate în cazul în care obiectivul nu este numele unui fișier sau director.

ACȚIUNE - un set de comenzi care urmează să fie executate. Echipele ar trebui să fie pus un caracter filă. În cazul în care diferența este un mesaj de eroare va fi afișat în timpul compilării vor fi introduse în locul personajului filă:

test.elf: test.c gcc test.c o- test.elf

Exemplu scop abstract:

toate: test.elf test.elf: test1.o test2.o GCC o- test.elf test1.o test2.o test1.o test1.c gcc -c test1.c o- test1.o test2.o test2.c gcc -c test2.c o- test2.o

Luați în considerare ultimul exemplu:
În primul rând pentru că a evoluat Acesta este situat la începutul Makefile. Totul depinde de test.elf și fișier sau un director cu numele tot ce există, va exista întotdeauna verificarea cu numele test.elf gol.

test.elf depinde test1.o și test2.o, în acest scop, test1.o întâi testat apoi test2.o

Atunci când verificarea scop test1.o compară data și ora și test1.o modificărilor fișierelor test1.c. Dacă test1.o fișierul nu există sau fișier test1.c a fost modificat mai târziu decât test1.o comanda gcc -c test1.c o- test1.o vor fi efectuate.

În mod similar test2.o scop să fie verificată.

După aceea compară data și ora modificările de fișiere și test.elf test1.o fișiere test2.o. Dacă test1.o test2.o sau mai nou, atunci comanda gcc test.elf test1.o test2.o o- va fi executat

Astfel, urmărește modificările aduse fișierelor și test1.s test2.c.