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/29 00:17]
liza_elena.babu
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 =====
  
-  - Scrieți un Makefile astfel încât comanda make să eșueze. (Hintcicluri în sortarea topologică+==== Makefile ==== 
-  Decomentați linia din fișierul ''​b.c'', ​din folder-ul ''​support/​need-to-know''​ și faceți modificările necesare ​astfel încât fișierul ​main.c să compileze ​cu succes din nou.+ 
 +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.ohello.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  
 +ș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.1540765031.txt.gz · Last modified: 2018/10/29 00:17 by liza_elena.babu
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