face

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - Dacă sunteți în căutarea altor semnificații, consultați Make (dezambiguizare) .
face
software
Exemplu de captură de ecran
Tip Automatizarea dezvoltării
Dezvoltator Stuart Feldman
Data primei versiuni Aprilie 1976
Sistem de operare Unix-like
Limba C.
Licență Licență publică generală GNU
( Licență gratuită )
Limbă Engleză

Marca este un utilitar , dezvoltat pe sistemele de operare ale familiei UNIX , dar disponibil pe o gamă largă de sisteme, care automatizează procesul de creare a fișierelor care depind de alte fișiere, rezolvarea dependențelor și invocarea programelor externe pentru munca necesară.

Această gestionare a dependenței este foarte simplă și se bazează pe ultima dată și ora modificate ale fișierelor afectate.

Utilitarul este utilizat în principal pentru compilarea codului sursă în codul obiect , fuzionarea și apoi legarea codului obiect în programe sau biblioteci executabile . Acesta folosește fișiere numite makefiles pentru a determina gradul de dependențe pentru o anumită ieșire și scripturile de compilare necesare pentru a trece la shell . Termenul makefile derivă din numele dat de obicei fișierului de intrare make.

Origine

Acum există utilități de verificare a dependenței, dar „make” este de fapt cel mai utilizat utilitar, în principal datorită includerii sale de sisteme de operare Unix . A fost creat de Stuart Feldman în 1977 în Bell Laboratories ( Bell Labs ). În 2003 , Dr. Feldman a primit premiul: ACM , pentru inventarea acestui instrument important. Înainte de invenția make, sistemul de construire UNIX consta pur și simplu din „make” și „install”, care erau simple scripturi shell, împreună cu codul sursă al unui program. Abilitatea de a amesteca comenzi / instrucțiuni pentru diferite ținte într-un singur fișier și de a putea abstractiza verificarea și urmărirea dependenței a fost un pas important înainte pentru cele mai avansate medii de construcții.

Versiuni moderne

Make a fost rescris de mai multe ori și în unele cazuri au fost scrise de la zero variante, care utilizează același format de fișier și același algoritm de bază. Trei versiuni rescrise ale celei mai comune și tradiționale mărci sunt:

POSIX include standardizarea caracteristicilor de bază și a operațiunilor make, datorită acestui fapt este posibil să utilizați Makefiles simple în mai multe variante de make, unele versiuni ale GNU și BSD make vor căuta fișiere GNUmakefile și respectiv BSDmakefile.

Utilizare și critici

Make are partea sa de fani și non-fani. Multe probleme au apărut atunci când încercăm să folosim marca cu proiecte moderne sau mari, dar mulți oameni au subliniat că marca funcționează foarte bine, este ușor de utilizat și foarte puternic. Este folosit pentru a compila și gestiona (aproape) orice sistem de operare, iar multe înlocuiri moderne sunt foarte asemănătoare cu modul în care funcționează „real”. La fel, multe limbaje de programare moderne au propriile lor modalități specifice de detectare a dependențelor.

Odată cu apariția mediilor integrate de dezvoltare (IDE), în special pe platformele non-UNIX, mulți programatori nu urmăresc și gestionează manual dependențele sau chiar listează fișierele care fac parte din proiect, lasă aceste lucruri mediului lor de dezvoltare automatizat .

Structura unui makefile

Un makefile este format din linii de text care definesc un fișier (sau un grup de fișiere) sau numele unei reguli dependente de grupul de fișiere. Fișierele generate sunt marcate ca fișiere sursă , în timp ce fișierele sursă sunt marcate în funcție de fișierele incluse intern. După ce fiecare dependență este declarată, poate urma o serie de linii indentate (din file ) care definesc modul de transformare a fișierelor de intrare în fișiere de ieșire, dacă prima a fost modificată mai recent decât cea din urmă. În cazul în care astfel de definiții sunt prezente, acestea se referă la scripturile de compilare și sunt transmise la shell pentru a genera fișierele țintă.

Structura de bază este:

 # Comentariile folosesc hash
țintă : dependențe
	comanda 1
	comanda 2
	   .
	   .
	   .
	comanda n

Un makefile poate conține, de asemenea, definiții variabile și incluziuni ale altor makefiles. Variabilele din makefiles pot fi anulate de argumentele transmise utilității make din linia de comandă . Aceasta permite utilizatorului să specifice comportamente diferite ale scriptului compilatorului și cum să invoce programe, precum și alte lucruri. De exemplu, variabila „CC” este frecvent utilizată în makefiles pentru a se referi la compilatorul C și utilizatorul ar putea oferi o alternativă la care compilator să utilizeze.

Exemplu de makefile

Mai jos este un exemplu de makefile care compilează o sursă numită „helloworld.c” folosind cc, un compilator C. Eticheta PHONY este o tehnicitate care spune că un anumit nume țintă nu produce un fișier. Simbolurile $ @ și $ <sunt două dintre cele numite variabile automate și reprezintă numele țintei. Există și alte variabile automate.

Rețineți că în ținta „curată”, un minus precede comanda, spunând make pentru a ignora erorile în timpul executării comenzii; face ieșiri în mod normal dacă executarea unei comenzi eșuează în orice moment. În cazul țintei de curățare, denumită în mod obișnuit „curat”, doriți să eliminați fiecare fișier generat în procesul de compilare, fără a ieși dacă fișierele de șters nu există. Prin adăugarea etichetei PHONY la curățare, se împiedică make să aștepte un fișier de la țintă. În acest caz particular, prefixul minus din comandă este redundant și, în cazuri obișnuite, opțiunea -fo „forță” adăugată la rm împiedică ieșirea rm din cauza inexistenței unui fișier.

 SHELL = / bin / sh #Shell de utilizat pentru executarea comenzilor

CC = cc #Compilator de utilizat

OBIECTE = helloworld.o # Obiect fișier
SRCS = helloworld.c # Fișier sursă

#target "helloworld" necesită $ (OBIECTE) pentru a compila
helloworld : $ ( OBIECTE )
        $ ( CC ) -o $ @ $ <
 
#target "helloworld.o" necesită $ (SRCS) pentru a crea fișiere obiect
helloworld.o : $ ( SRCS )
        $ ( CC ) -c -o $ @ $ <

#target "clean" curăță fișierele obiect și binele din directorul curent
curat :
        rm -f helloworld helloworld.o

#target "clean" nu este un fișier!
.FONIE : curat

Elemente conexe

Instrumente similare

Make este cu siguranță cel mai cunoscut instrument pentru automatizarea construcției de proiecte, dar există și alte instrumente, similare cu marca:

  • ant Instrument foarte popular pentru gestionarea proiectelor Java mari, inclus în Eclipse. Utilizați un fișier XML pentru configurarea proiectului.
  • Maven instrument similar cu furnică, utilizat în Android Studio (și nu, desigur)
  • Rake: Un instrument de construcție bazat pe Ruby

Alte proiecte

linkuri externe

Controlul autorității VIAF (EN) 176 684 165 · LCCN (EN) n92090404 · GND (DE) 4334388-0
Software gratuit Portal Software gratuit Puteți ajuta Wikipedia extinzându-l Software-ul gratuit