Documente Academic
Documente Profesional
Documente Cultură
Cheatsheet
Comand Descrierescurt compilaresurse utilitarpentrumentenanaunuigrupdeprograme
g c c m a k e
Suportlaborator
11.Compilareilinking[http://books.google.com/books?id=_JFGzyRxQGcC&pg=PA319] 14.6.1Compilareauneiaplicaiidinsurse[http://books.google.com/books?id=_JFGzyRxQGcC&pg=PA484] PuteiurmritutorialulvideocorespunztorlaboratoruluifcutdeITAssistant.
[http://itassistant.org/diverse/utilizareasistemelordeoperare/utilizareasistemelordeoperare11.html]
Arhivlaborator
Sevadescrcadeaici:lab06.tar.gz
Introducere
Compilatorulgcc.
PentruacompilaunfiiersursC,S U R S A . c ,folosimcomandag c c :
s t u d e n t @ u s o : ~ $g c cS U R S A . c
Putemverificadacfiierulesteunulexecutabil,folosindcomandaf i l e pentruaaflattipulacestuia.
s t u d e n t @ u s o : ~ $f i l eN U M E _ E X E C U T A B I L N U M E _ E X E C U T A B I L :E L F6 4 b i tL S Be x e c u t a b l e ,x 8 6 6 4 ,v e r s i o n1( S Y S V ) ,d y n a m i c a l l yl i n k e d( u s e ss h a r e dl i b s ) ,f o rG N U / L i n u x2 . 6 . 2 4 ,B u i l d I D [ s h a 1 ] = 0 x 0 1 4 e d d b 0 e d a b e 6 6 6 f a 4 4 d 6 f f 3 2 4 4 3 a 5 1 2 7 b 2 5 f 0 d ,n o ts t r i p p e d
Pentruarulafiiereleexecutabile,folosimconstrucia. / N U M E _ E X E C U T A B I L .
s t u d e n t @ u s o : ~ $. / a . o u t
Exerciii
1.Gcc
Descrcaiarhivadelaborator.Dezarhivaiofolosindtar. Rezolvare
t a rx fl a b 0 6 . t a r . g z
Rulaicomenzileurmtoare,ndirectorult u t o r i a l / 2 dinl a b 0 6 :
g c coj o b sW a l lh e l l o . c g c cW a l lot u r i n gh e l l o . c g c cW a l lh e l l o . cod i j k s t r a
Utilizndl sl comparaidimensiunilecelor3executabilecreate.Verificaiccele3executabilesuntidentice vizualizndoutputulfiecruia. Faptulcdouexecutabileauaceeaidimensiuneiacelaicomportament(output)nunseamnneapratcele suntidentice. Calculaimd5ulfiecruiexecutabiliverificaicesteidentic. Folosindcomandam d 5 s u m putemobineunrezumatalconinutuluiunuifiier.Acestrezumat,cunoscutisub numeledehash,areproprietateainteresantcceamaimicmodificareposibilnfiieruliniialvaducela modificareacompletamd5ului.Dinacestmotiv,2fiierecuacelaimd5potficonsiderateidentice. ngeneral,ordineaparametrilornuconteaz.Anumiiparametriauargumente.Aiciavemparametrulo .Acest argumenttrebuieurmatntotdeaunadenumeleexecutabilului.
2.Etapelecompilrii
Intraindirectorult u t o r i a l / 3 / 1 .Vizualizaiconinutulfiieruluia n s w e r . c .Rulaicomanda
g c cEa n s w e r . coa n s w e r . i
3.Makefile
Intraindirectorult u t o r i a l / 4 / 1 .Fiieruls a n d w i c h . c conineunprogramCvalid.Rulai
m a k es a n d w i c h
ivizualizaifiierelecreate(utilizndf i l e pentruavedeatipulacestora).Cecomandafostfolositpentrua compilasursa? AtuncicndunfiierM a k e f i l e nuexistinuestespecificat,m a k e vafolosicomenziimplicitepentrubuild,n funciedeextensiafiieruluiprimitcaparametru.nacestcaz,comandaimplicitafostc cs a n d w i c h . co s a n d w i c h . Intraindirectorult u t o r i a l / 4 / 2 .FiierulM a k e f i l e vafifolositpentruacompilasursas a n d w i c h . c . Rulaicomenzile:
m a k e . / s a n d w i c h
Verificaicairulatt o u c h
c l e a n !!
m a k es t o r y r ms t o r y m a k es t o r yC F L A G S = W a l l r ms t o r y m a k es t o r yC C = g c c r ms t o r y m a k es t o r yC C = g c cC F L A G S = " W a l lW e x t r aO 3 "
4.Biblioteci.nm.ldd.Legaredinamic/static
Intraindirectorult u t o r i a l / 6 .Compilaisursam a t h . c utilizndg c c :
g c cm a t h . c
Seobservcavemoeroareu n d e f i n e d obiect:
r e f e r e n c et o` s i n h '.Compilaiprogramulpnlamodulul
g c ccm a t h . com a t h . o
Utilitaruln m listeazsimboluriledintrunfiierobiectsaudintrunexecutabil.Rulaicomanda:
n mm a t h . o
Liniilececonin'U'listeazsimbolurilefolositedarnedefinitenm a t h . o .Liniilecu'T'listeazsimboluriledefinite (translatate). Pentruaputeaobineexecutabilulvatrebuisdefinimisimboluls i n h .Funciaestedefinitnbiblioteca matematicl i b m . s o .Pentruadabibliotecacaargumentluig c c pentruetapadelinkeditarevatrebuis folosimargumentull astfel: dinnumelebiblioteciiseeliminextensiaiprefixull i b . cermneseconcateneazlal Rulai:
g c cm a t h . cl m
Compilareareuete.Pentruavedeabibliotecilefolositedeexecutabilvomfolosiunaltutilitarl d d :
l d da . o u t
Folosiiurmtoareacomandpentruacompilasursastatic:
g c cm a t h . cs t a t i cos t a t i c m a t hl m
5.Organizareproiect.Fiieremultiple
CreaifiiereleR E A D M E ,t e m a . c ,u t i l . c ,u t i l . h .Fiierult e m a . c vaincludeheaderulu t i l . h i vadefinifunciam a i n .
tema.c
# i n c l u d e" u t i l . h " i n tm a i n ( ){
r e t u r n0 ;
Modificaireguladecompilarepentruacompilaambelefiiere. c . Rezolvare
t e m a :t e m a . cu t i l . c
6.Makepentruautomatizri
Adugaioregulc l e a n pentrutergereafiierelorgenerate. Rezolvare
c l e a n : r m* . ot e m a
7.Variabilemake
ModificaifiierulM a k e f i l e astfelnctdenumireaarhiveisconinnumelevostruinumelemateriei,uso. Rezolvare
S T U D E N T = i o n . p o p e s c u M A T E R I E = u s o A R H I V A = $ ( M A T E R I E ) _ $ ( S T U D E N T ) p a c k : t a rc z f$ ( A R H I V A ) . t a r . g zR E A D M EM a k e f i l et e m a . cu t i l . cu t i l . h
t a rc z f$ ( A R H I V A ) . t a r . g z$ ( F I S I E R E )
8.Codsurs
Pentruacestexerciiu,vatrebuisinstalaipachetulf r e e g l u t 3 d e v . Arhivele. z i p sedespacheteazfolosindcomandau n z i p ,nut a r .
V i m poatefifolositpentrueditareacoduluisurs.Descrcaiidezarhivaiarhiva[http://elf.cs.pub.ro/uso/store/uso
lab3grf.zip]ceconineunmicproiectcefoloseteOpenGL.Scopulacestuiexerciiuestescompilaiacestproiect
9.Navigareprincodsurs
Pentruacestexerciiu,instalaipachetulc t a g s . Pentruapermitenavigareauoarprincodulsurs,v i m interacioneazuorcuunelteprecumc t a g s i c s c o p e .nexerciiulcurentvomfolosic t a g s ,ncercaisvjucaivoicuc s c o p e . Ieiidinv i m dacnaifcutdejaastairulai
c t a g s*
Seconstruieteunfiiernouncaresegsescinformaiidesprefiecareidentificatordinsurseledindirectorulcurent. Deschideifiierulf p s . c p p
v i mf p s . c p p
Cutaifunciam a i n (hint:/ ). Cutaiapelulfuncieii n i t dincadrulfuncieim a i n .Pentruasriladefiniiafuncieicndneaflmpeapelulei tastmCtrl+]. NavigaipnladefiniiaclaseiK e y b o a r d (gsiioinstanaK e y b o a r d ni n i t saufolosiicutarecu/ ). PentruanentoarcefolosimCtrl+T.ntoarceivnfunciam a i n . CutaidefiniiaclaseiU n i v e r s e dinfunciau p d a t e (pecareogsiiapelatnm a i n ).
10.MaimultevariabileMakefile
Unfeaturealmakesuntv a r i a b i l e l e dinaceastcategorie.
a u t o m a t e (a u t o m a t i cv a r i a b l e s ).$ @ i$ ^ facparte
$ @ seexpandeazlanumeletargetului. $ ^ seexpandeazlalistadependenelorcutotcuspaii.
CompletaiMakefileuldinarhivadelaborator,directorulsimple/2.Fiecareobiectsevacreaindependent. Folosiivariabilele$ @ i$ ^ .Deexemplu,pentrutargetulbignum.ovomscire:
b i g n u m . o :b i g n u m . c $ ( C C )$ ( C C F L A G S )co$ @$ ^
nplus,putemfolosiregulidepatternmatching,astfel,vomscrieunsigurtargetpentruageneratoateobiectele:
% . o :% . c $ ( C C )$ ( C C F L A G S )co$ @$ ^