Situatie
Daca te-ai apucat recent sa inveti programare in C sau C++ pe Linux (sau WSL), probabil te-ai lovit deja de partea repetitiva. Scrii cod, salvezi, apoi mergi in terminal si scrii celebra comanda:
gcc main.c -o program
Daca ai gresit o virgula in cod? Corectezi si scrii comanda din nou. Daca vrei sa rulezi programul? Scrii ./program. Daca vrei sa stergi ce ai facut? Scrii rm program.
Ei bine, pentru a scapa de toate astea, intervine Makefile. Nu este o unealta doar pentru experti, ci este cel mai bun prieten al oricui vrea sa economiseasca timp.
Solutie
Pasul 1: Ce este, de fapt, acest fisier?
Un Makefile este un fisier text in care ii spui calculatorului: “Cand scriu cuvantul X, tu sa executi comanda Y”. Pentru a incepe, creeaza un fisier nou in folderul proiectului tau care sa se numeasca exact asa: Makefile
(Fara extensie gen .txt sau .doc. Doar simplu: Makefile, cu M mare).
Pasul 2: Care este reteta
Deschide fisierul in orice editor (eu am deschis VS Code) si hai sa definim comenzile. Structura este: “Nume actiune: (Enter) Comanda”.
Iata un exemplu clasic:
—————————————————
Acum ai definit 3 “butoane”:
-
build -> Compileaza codul
-
run -> Ruleaza programul
-
clean -> Sterge executabilul (face curat)
- all: -> Ce sa faca calculatorul: apasa “build”, iar dupa apasa “run”.
Explicatie rapida (ce face fiecare parte):
-
gcc exemplu.c -o exemplu: Ii spune compilatorului sa ia fisierul tau (exemplu.c) si sa creeze un program executabil numitexemplu. -
-Wall: Este o optiune utila care inseamna “Warning All”. Te ajuta sa vezi toate avertismentele daca ai scris cod gresit sau riscant. -
./exemplu: Ruleaza programul creat. -
rm exemplu: Sterge programul creat (ca sa faci curat).
ATENTIE: In fata comenzilor gcc, ./ si rm trebuie sa fie tasta TAB, nu spatii! Daca dai copy-paste, verifica sa fie aliniate corect.
Pasul 3: Cum il folosesti?
Tot ce trebuie sa faci este sa scrii comanda make in folderul in care esti si sa apesi “Enter”.\
Ai reusit! Sistemul creeaza automat fisierul “exemplu” in care se vede output-ul si afiseaza si in terminal rezultatul.



Leave A Comment?