Las columnas que se muestran para la carpeta Descargas.

Linux: el archivo make de GNU

En Linux, un archivo MAKE es un archivo de texto que describe qué archivos son necesarios para construir un programa en particular, así como también cómo compilar y vincular los archivos para construir el programa. Para un programa de Linux compuesto por varios archivos fuente y de encabezado, el archivo MAKE especifica lo siguiente:

  • Los elementos que hacen crea, generalmente los archivos de objeto y el ejecutable. Es común usar el término objetivo para referirse a cualquier artículo que tenga que crear.

  • Los archivos u otras acciones necesarias para crear el destino.

  • Qué comandos ejecutar para crear cada objetivo.

Suponga que tiene un archivo fuente de C ++ llamado form.C que contiene la siguiente directiva de preprocesador:

#include "form.h" // Incluir archivo de encabezado

El archivo de objeto form.o depende claramente del archivo de origen form.C y el archivo de cabecera form.h . Además de estas dependencias, debe especificar cómo hacen convierte la form.C archivo en el archivo de objeto form.o . Suponga que desea hacer invocar g ++ (porque el archivo fuente está en C ++) con estas opciones:

  • -c (solo compilar)

  • -g (generar información de depuración)

  • -O2 (optimizar algo)

En el archivo MAKE , puede expresar estas opciones con la siguiente regla:

# Este es un comentario en el archivo MAKE
# Las siguientes líneas indican cómo depende form.o
# en form.C y form.h y cómo crear form.o.
formulario.o: formulario.C formulario.h
g ++ -c -g -O2 forma. C

En este ejemplo, la primera línea sin comentarios muestra form.o como destino y form.C y form.h como archivos dependientes.

La línea que sigue a la dependencia indica cómo construir el objetivo a partir de sus dependientes. Esta línea debe comenzar con una pestaña. De lo contrario, el comando make sale con un mensaje de error y te quedas rascándote la cabeza porque cuando miras el archivo Make en un editor de texto, no puedes distinguir entre una pestaña y un espacio.

LEER  Cómo manipular aplicaciones de Windows en Windows 10

Ahora que conoce el secreto, la solución es reemplazar el espacio al comienzo de la línea ofensiva con una sola pestaña.

La ventaja de utilizar make es que evita compilaciones innecesarias. Después de todo, puede ejecutar g ++ (o gcc ) desde un script de shell para compilar y vincular todos los archivos que componen su aplicación, pero el script de shell lo compila todo, incluso si las compilaciones son innecesarias.

GNU make , por otro lado, construye un objetivo solo si uno o más de sus dependientes han cambiado desde la última vez que se construyó el objetivo. make verifica este cambio examinando la hora de la última modificación del objetivo y los dependientes.

make trata el objetivo como el nombre de un objetivo a alcanzar; el objetivo no tiene que ser un archivo. Puedes tener una regla como esta:

limpio:
rm -f * .o

Esta regla especifica un objetivo abstracto llamado limpio que no depende de nada. Esta declaración de dependencia dice que para crear el objetivo limpio , GNU make invoca el comando rm -f * .o , que borra todos los archivos que tienen la extensión .o (es decir, los archivos objeto). Por lo tanto, el efecto de crear el destino llamado limpio es eliminar los archivos de objeto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *