GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué los Makefiles en Linux son tan útiles?

El normal way para Linux es usar un archivo make.

Evolucionó a partir de todos los errores que cometió la gente al compilar aplicaciones cada vez más complejas a mano o con scripts caseros. No es trivial representar dependencias de compilación para un proyecto complejo. Make simplemente ofrece una forma estandarizada de especificar dichas dependencias y una herramienta para analizar las dependencias y ejecutar acciones de compilación asociadas.

Incluso las interfaces de usuario que simplifican/automatizan el proceso de compilación utilizan un archivo de creación o algo similar entre bastidores.

ACTUALIZAR

Para aquellos que se preguntan sobre el comentario de automake, aquí hay dos puntos de vista diferentes sobre el tema

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

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


Los Makefiles hacen mucho trabajo por usted y, con frecuencia, son más poderosos de lo que la gente cree. Tome el siguiente archivo make simple

 all: helloworld

esa es una línea, y (gnu make, al menos) sabría ejecutar cc -o helloworld helloworld.c Luego, a medida que crece el proyecto, agrega una regla más:

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

y hacer saber correr

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

Luego diga que desea optimizar todo.

CFLAGS=-O2

al principio del archivo se ocupa de ti.

Cuando el proyecto crece, make realiza un seguimiento de los archivos que han cambiado y los que no, evitando recompilaciones extrañas y que consumen mucho tiempo.

Los archivos MAKE ahorran tiempo maravillosamente, y ni siquiera he mencionado recetas más avanzadas.


Linux
  1. Por qué me quedo con xterm

  2. 12 ejemplos útiles de comandos Wget en Linux

  3. Linux:¿los diferentes kernels de Linux/unix son intercambiables?

  4. ¿Por qué hay tantos /dev/tty en Linux?

  5. ¿Por qué se usan tanto `make clean` como `make mrproper`?

Hacer un USB persistente de Kali Linux

Las 10 razones principales por las que usar Linux

Cómo hacer un archivo ejecutable en Linux

Por qué los nerds usan Linux

Linux:¿por qué son tan grandes los verdaderos y los falsos?

12 ejemplos útiles de comandos de fecha de Linux