GNU/Linux >> Linux Esercitazione >  >> Linux

Perché i Makefile in Linux sono così utili?

Lo normal way per Linux consiste nell'usare un file make.

Si è evoluto da tutti gli errori commessi dalle persone compilando applicazioni sempre più complesse a mano o con script fatti in casa. Non è banale rappresentare le dipendenze di compilazione per un progetto complesso. Make simply offre un modo standardizzato per specificare tali dipendenze e uno strumento per analizzare le dipendenze ed eseguire azioni di compilazione associate.

Anche le interfacce utente che semplificano/automatizzano il processo di compilazione utilizzano un make file o qualcosa di simile dietro le quinte.

AGGIORNA

Per coloro che si interrogano sul commento di automake, ecco due diversi punti di vista sull'argomento

http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool

http://www.scurrilous.com/blog/archives/2005/08/23/i-hate-automake/


I makefile fanno così tanto lavoro per te e sono spesso più potenti di quanto le persone credano. Prendi il seguente semplice makefile

 all: helloworld

questa è una riga e (almeno gnu make) saprebbe eseguire cc -o helloworld helloworld.c Quindi, man mano che il progetto cresce, aggiungi un'altra regola:

helloworld: ui.o xml.o mailcomponent.o
   $(CC) $(CFLAGS) -o [email protected] [email protected] $^

e fai in modo di correre

cc -c ui.c
cc -c xml.c
cc -c mailcomponent.c
cc -o helloworld helloworld.c ui.o xml.o mailcomponent.o

Quindi dì che vuoi ottimizzare tutto.

CFLAGS=-O2

all'inizio del file si prende cura di te.

Quando il progetto diventa più grande, make tiene traccia dei file che sono stati modificati e non, prevenendo ricompilazioni estranee e dispendiose in termini di tempo.

I makefile sono meravigliosi risparmi di tempo e non ho nemmeno accennato a ricette più avanzate.


Linux
  1. Perché Linux è fondamentale per l'edge computing

  2. Linux – I diversi kernel Linux/unix sono intercambiabili?

  3. Perché le librerie condivise su Linux sono eseguibili?

  4. Perché la maggior parte dei programmi Linux sono scritti in C?

  5. Perché vengono usati sia `make clean` che `make mrproper`?

Crea una USB persistente Kali Linux

I 10 motivi principali per utilizzare Linux

Come rendere eseguibile un file in Linux

Perché i nerd usano Linux

Linux:perché vero e falso sono così grandi?

12 Esempi utili di comandi data di Linux