Pe parcursul secțiunilor de până acum am văzut cum se poate îmbunătăți procesul de compilare al unui program. Am trecut de la a compila codul “de mână”, la fișiere Makefile, la fișiere Makefile cu dependențe. Mai există totuși o formă prin care să putem să îmbunătățim procesul.
CC = gcc CFLAGS = -Wall -g all: hello hello: hello.o $(CC) hello.o -o hello hello.o: hello.c $(CC) $(CFLAGS) -c hello.c clean: rm *.o hello
În exemplul de mai sus au fost definite variabilele CC
și CFLAGS
. Variabila CC
reprezintă compilatorul folosit,
iar variabila CFLAGS
reprezintă opțiunile (flag-urile) de compilare utilizate; În cazul de față sunt afișarea avertismentelor
și compilarea cu suport de depanare. Referirea unei variabile se realizează prin intermediul construcției $(VAR_NAME).
Astfel, $(CC)
se înlocuiește cu gcc
, iar $(CFLAGS)
se înlocuiește cu -Wall -g
.
Exemple variabilele predefite:
Până să treceți mai departe mutați-vă la calea ~/uso-lab/04-appdev/support/need-to-know
.
Fișierul Makefile pe care l-ați creat mai devreme este unul funcțional, dar vrem să îl mai îmbunătățim.
Makefile
astfel încât să avem de schimbat o singură linie în cazul în care dorim să schimbăm numele executabilului.
La calea ~/uso-lab/04-appdev/support/get-a-life
se află un Makefile alături de 3 fișiere sursă și 2 fișiere header.
În acest moment, în directorul my-awesome-project
avem repository-ul nostru de git pentru care avem 2 branch-uri active. Dacă verificăm,
obesrvăm că fișierul tom.txt
este diferit pe fiecare branch. Vrem ca branch-ul my-even-awesomer-branch
să fie “la zi” cu branch-ul
master
. Pentru asta trebuie să efectuăm operațiunea de merge
.
merge
, rezolvați-le dacă apar și după discutați cu asistentul.