La lecture en ligne est gratuite
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
Télécharger Lire

Initiation au C cours n9

De
40 pages
Compilation s´epar´eeModularit´eAutomatisation de la compilation avec makeInitiation au C◦cours n 9Antoine Min´e´Ecole normale sup´erieure26 avril 2007◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 9Compilation s´epar´eeModularit´eAutomatisation de la compilation avec makePlan du courscompilation s´epar´ee,modularit´e,biblioth`eques .a et .so,recompilation automatique avec make.◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 9Compilation s´epar´eeD´eroulement de la compilationModularit´eCompilation simple, compilation s´epar´eeAutomatisation de la compilation avec makeCompilation s´epar´ee◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 9Compilation s´epar´eeD´eroulement de la compilationModularit´eCompilation simple, compilation s´epar´eeAutomatisation de la compilation avec make´Etapes de la compilationCompilation = g´en´eration d’un programme ex´ecutable`a partir d’un fichier .c.Se d´ecompose en plusieurs ´etapes.´Etapes de la compilationpr´e-traitement (gestion de #include, #define),analyse syntaxique,typage,g´en´eration de code assembleur,assemblage,´edition de liens (ajout de la biblioth`eque C).◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 9Compilation s´epar´eeD´eroulement de la compilationModularit´eCompilation simple, compilation s´epar´eeAutomatisation de la compilation avec makeProgrammes utilis´es lors de la ...
Voir plus Voir moins
Compilations´eprae´Medoluratie´toAutimatisadeonocallipmoitaevanecmakAtnioencolenormMin´e´EueirnIerselae´puCauurcoiaitonti
Initiation au C cours n9
´ Ecolenormalesupe´rieure
26 avril 2007
Antoine Mine ´
ns9
pmoCeer´pa´ensioatilsitaoitalednmocaduMorilaeAt´omutlPnaudocruspilationavecmakeMineen´AointInitiati´erieuremrlasepuE´ocelon
compilations´epar´ee,
biblioth`eques.aet.so,
modularite´,
recompilation automatique avecmake.
9nsruocCuano
acelndiotilapiomamcevanouore´Dekpar´ns´edulaeeMoAetuir´tsitamotampsi,clepiomtila´snorapeee´lementdelacompiltaoiCnmoipalitnoire´puselamronelauontiiaitInreeuA´Econ´eneMintoi9
Compilation
´ ´ separee
CocrunsatiompilCo
Sed´ecomposeenplusieurse´tapes.
Compilation =eatlbcu´eexmeamgrronpudnoitare´ne´g `apartirdunchier.c.
´ Etapes de la compilation pr´e-traitement(gestionde#include,#define), analyse syntaxique, typage, ge´ne´rationdecodeassembleur, assemblage, e´ditiondeliens(ajoutdelabibliothe`queC).
nAotniMenie´´Ecolenormalesure´prueiinIetaitnaiocuCrsou9n´rapoMeeoitae´snuteAatomladut´riCompiltaoipmliipalCnmolemeeroulacontdevanoital´DekamcendioatispiomaceltaoinEtapesdelacompilital´snorape´ee´ontimpsi,clepiom
alipmocaledtnemeulro´eeDakcmvenataoipmli,eocmilpionsilatComptiondoMeralupe´se´ralapiontiomCpmlitaoinoedalocmatisatiit´eAutoesmmilut´eisorsle´sn´raprPeeargodslecamoipalitnomronselae´puueirInreiaitontiCauAtnoineMin´e´Ecole
Chaˆıne de compilation Pr´e-traiteur:cpp pre´-traitement(gestionde#include,#define), Compilateur C :cc1 analyse syntaxique, typage, ge´ne´rationdecodeassembleur, Assembleur :as assemblage, ´ Editeur de liens :ld e´ditiondeliens(ajoutdelabiblioth`equeC).
Plusieurs programmes interviennent lors de la compilation :
9snurco
esbientdalema´eglrrenOapneoint.All.do,.s,a.:seuqe`htoilbn´Mi´Eelecormnoselae´puueirnIeritiationauCcourns9
Types de fichiers : .crpe´`rsetimet-areC,aourcetapvanthc:sreit,en .s: fichier source assembleur, .o:fichier objet,(.objsous Windows), a.outabutleereice´xhc:(.exesous Windows).
Cesprogrammescommuniquentpardeschiersinterm´ediaires:
tumotasialir´tAer´eeModuions´epapmoCtalinıˆenedocpmlitaoiontieps´´earhaeCisnoelpmmoc,alipionCilatlatiompiemtnuoelocpmedalecavontierD´kemalednoitaalipmoca
rapeMee´ital´snoAu´ematouloditaredalocpmitasitnovecmakeDilationacaledtnemeluore´ilmpCoontilapiomocpmlp,esnmitaoir´ee´epaionsilatmoipCgeˆrie´gaccca`eilatCompimplions
Effet : pr´e-traite,compile,assembleetlie, de´truitleschiersinterme´diaires.c,.set.ousesr`ape,ag =ntunuemecutaex´elb.eonatneitboqitamotu
Note :gcc´dte`alextensionmierlenectsansioea`utcergreecaˆ.c.
gcc =interfacedenımocealipnoitslauraˆch.
Ligne de commande classique $gcctoto.c -Wall -Wextra
n9uosrCuc
En pratique, on n’appelle pascpp,cc1itiles,...`alamain,onugcc.
re´puselamronelonaioattinieIurienAotniMenie´´cE
ations´epar´eeCooisnmilp,eocpmlieelipmoitae´sn´rapDee´mckaanevtaoimpillacoondesatitalipmoCnoitalipomaceltdenemulroCmoipalotuAitamralue´ti´earodeMontieps´e´gtetneenuere`nabutecx´t.oua.leedocp(sataoipmlito.cn,totpasnesdsaide´noitileds,ensdpax´eutecbael´gnee´´r)eg2ccliele.oenargumEelipmocc-ccg1:techireunen`eetg´,op(to.oejttrebo
Exemple $ gcc-ctoto.c -Wall -Wextra $ gcc toto.o
Compilations´epare´e:noseeoocpmdne´deuxapes´et ‘compilation’asn+mbseilmpioategal,itra-t´ecot+enemrp= e´ditiondeliens.
9uocnsrioatuCnaeIurtinius´preeineroamel´e´EcoltoineMinnA.sussecorpudnla`aitruetd´astpnseoto.reotcihe:le)Notin´eexam
omeClapiontiltmulipmoitaevankamcmatisationdelacoMedoluratie´uAotontilapi´eareps´moCtionauCreInitia
Modularite´
ocruns9´Eeleconeoin´Mie´puueirmronsela`equiothbiblsLesAtnsesalitisUerhici-eteˆt-nesedsnoit
otniMeninA
Avantages facilitele´critureetlacompre´hensiondegrosprogrammes, faciliteletravaila`plusieurs, rendlesrecompilationsplusrapides(compilations´epare´e), permetlamodularite´etlabstraction, permetlar´eutilisationdansdautresprojets.
9
Unproutˆtrecompose´deplusieurssources.c. gramme pe e
Exemple : noyau Linux 2.6.18 8531 fichiers.c, taille moyenne : 646 lignes, taille totale : 5.5 Mlignes, taillemaximale:18227lignes,taillem´ediane:330lignes.
rsncounauCatioitinIerueire´puslemaorenolEc´´euqserPgoarmmseumlti-chiersasitnodssenet-eˆtesLesbiblioth`eCekaipmoitalumnoi-lthicsUerlitiitasotamedalitnoilatcompvecmionaitalipmorape´snoulodeM´eAu´eitarC
Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin