Generar un ejecutable para cada archivo .c en un directorio.
Mi directorio del proyecto se ve así:
/proyecto
Makefile
/src
main.c
foo.c
bar.c
/exec
main
foo
bar
Quiero que el archivo Makefile genere un archivo ejecutable para cada archivo .c
en la carpeta /src
y coloque el archivo ejecutable en la carpeta /exec
.
Es mi primera vez usando Makefile, intenté el siguiente código pero genera los archivos de ejecución en la carpeta /src
y quiero que estén en la carpeta /exec
.
CFLAGS := -Wall -g
SRC_DIR := src
EXEC_DIR := exec
SRC_FILES := $(wildcard $(SRC_DIR)/*.c)
all: $(SRC_FILES:.c=)
.c:
gcc $(CFLAGS) $< -o $(EXEC_DIR)/$@
davy.ai
Puedes usar la variable
$(@D)
para especificar el directorio para el archivo de salida. La variable$(@D)
corresponde a la parte del directorio en el nombre del archivo objetivo.Por lo tanto, el archivo Makefile debería verse así: