Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:laboratoare:new:04-appdev:get-a-life [2018/10/23 21:16]
razvan.deaconescu created
uso:laboratoare:new:04-appdev:get-a-life [2019/10/24 11:27] (current)
adrian.zatreanu [Variabile în Makefile]
Line 1: Line 1:
 ===== Get a Life ===== ===== Get a Life =====
  
-TODO+==== Makefile ==== 
 + 
 +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. 
 + 
 +==== Variabile în Makefile ==== 
 + 
 +<code make Makefile>​ 
 +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 
 +</​code>​ 
 + 
 +Î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:​ 
 +  * ** %%$%%@ ** se expandează la numele target-ului.  
 +  * ** %%$%%^ ** se expandează la lista de cerințe. 
 +  * ** %%$%%< ** se expandează la prima cerință.  
 + 
 +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. 
 +  - Modificați fișierul ''​Makefile''​ astfel încât să avem de schimbat o singură linie în cazul în care dorim să schimbăm numele executabilului. 
 +  - Adăugați o variabile în Makefile care să țină locul compilatorului și flag-urilor de compilare. Nu uitați să și folosiți aceste variabile! 
 + 
 +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. 
 + 
 +  - Încercați să compilați programul folosind fișierul Makefile. În cazul în care nu funcționează,​ rezolvați problema (hint: dependențe ciclice). 
 +  - Creați voi un program, altul decât cel prezentat până acum și încercați să scrieți un Makefile cu reguli de compilare, rulare și ștergere care să aibă dependențe. 
 + 
 +==== Git ==== 
 + 
 +Î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''​. 
 + 
 +  - Scopul acestui exercițiu este să sincronizăm conținutul branch-ului secundar cu cel principal (hint: [[http://​gitimmersion.com/​lab_28.html|aici]]). Aveți grijă la erorile de ''​merge'',​ rezolvați-le dacă apar și după discutați cu asistentul. 
 +  - Intrați pe [[http://​gitimmersion.com|GitImmersion]] și rezolvați cât de multe etape puteți. 
uso/laboratoare/new/04-appdev/get-a-life.1540318613.txt.gz · Last modified: 2018/10/23 21:16 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0