Gå til innhold

Makefil - kompilering med 'make'


Anbefalte innlegg

Videoannonse
Annonse

En makefile inneholder regler for hvordan man skal kompilere større program. Primært beskriver den hvordan man skal kompilere enkeltfiler og hvordan man skal linke sammen disse filene til et kjørbart element.

 

Om du bare har en cpp-fil er det mye greiere å kompilere den på kommandolinja med g++, men dersom du øker antall filer som må kompileres og linkes sammen vil du finne at en makefil e.l. er et must.

Lenke til kommentar

Make kan brukes til mer enn bare programmering.

 

En makefil beskriver hvilke andre filer en fil som skal lages er avhengig av, og hva som skal til for å bygge denne filen. Formatet ser slik ut:

 

fil: avhengig1 avhengig2 avhenig3 .....
<tab>kommando1
<tab>kommando2
.....

(Merk at mellomrommet før kommandoene er én <tab> og ikke <space>.)

Edit: La inn <tab> i teksten, fordi tabulatorer tydeligvis ikke vises.

 

Når man så kjører make, så vil den for å bygge 'fil' se på avhengighetene og sjekke om noen av disse filene er nyere enn det 'fil' er. Hvis det er tilfelle så kjøres alle kommandoene, hvis resultat bør være en oppdatert 'fil'.

 

Hver av avhengighetene kan ha egne regler i makefilene, slik at man får et hierarki av filer som er avhengig av hverandre.

 

Den store fordelene med å bruke Makefile, er at man på denne måten kun bygger de deler av prosjektet som er nødvendig å bygge. Når man har store prosjekter kan det ta timesvis å kompilere, noe som er unødvendig når man her gjort bare en liten et sted. Da vil makefilen sørge for å kun kompilere på nytt det som er nødvendig.

 

Et eksempel på en makefil som ikke er programmering:

forside.html: header.txt footer.txt forside.txt
<tab>cat header.txt > forside.html
<tab>cat forside.txt >> forside.html
<tab>cat footer.txt >> forside.html

ommeg.html: header.txt footer.txt ommeg.txt
<tab>cat header.txt > ommeg.html
<tab>cat ommeg.txt >> ommeg.html
<tab>cat footer.txt >> ommeg.html

footer.txt: kontakt.txt disclaimer.txt
<tab>cat disclaimer.txt >footer.txt
<tab>cat kontakt.txt >>footer.txt

I Makefiles kan man også bruke en rekke variabler for å gjøre ting enklere. Men det får du lese om sjæl.

Endret av JBlack
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...