Buscar

5.2. Ejemplo: Construir un programa en C usando un Makefile

download PDF

Construya un programa C de ejemplo utilizando un Makefile siguiendo los pasos de este ejemplo.

Procedimiento

  1. Cree un directorio hellomake y cambie a este directorio:

    $ mkdir hellomake
    $ cd hellomake
  2. Cree un archivo hello.c con el siguiente contenido:

    #include <stdio.h>
    
    int main(int argc, char *argv[]) {
      printf("Hello, World!\n");
      return 0;
    }
  3. Cree un archivo Makefile con el siguiente contenido:

    CC=gcc
    CFLAGS=-c -Wall
    SOURCE=hello.c
    OBJ=$(SOURCE:.c=.o)
    EXE=hello
    
    all: $(SOURCE) $(EXE)
    
    $(EXE): $(OBJ)
            $(CC) $(OBJ) -o $@
    
    %.o: %.c
            $(CC) $(CFLAGS) $< -o $@
    
    clean:
            rm -rf $(OBJ) $(EXE)
    Atención

    Las líneas de la receta del Makefile deben comenzar con el carácter de tabulación Al copiar el texto anterior de la documentación, el proceso de cortar y pegar puede pegar espacios en lugar de tabulaciones. Si esto ocurre, corrija el problema manualmente.

  4. Ejecutar make:

    $ make
    gcc -c -Wall hello.c -o hello.o
    gcc hello.o -o hello

    Esto crea un archivo ejecutable hello.

  5. Ejecute el archivo ejecutable hello:

    $ ./hello
    Hello, World!
  6. Ejecute el objetivo de Makefile clean para eliminar los archivos creados:

    $ make clean
    rm -rf hello.o hello
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

© 2024 Red Hat, Inc.