Módulo: Proyectos y herramientas
Este módulo forma parte del curso de C. .
Escribir código correcto es solo una parte del desarrollo en C. Este módulo cubre las herramientas que todo programador de C necesita para trabajar con proyectos reales: automatizar la compilación con Make y depurar errores con GDB.
Makefile: automatización de la compilación
A medida que un proyecto crece, compilar manualmente cada fichero se vuelve inviable. La herramienta make usa un Makefile para describir las dependencias entre ficheros y ejecutar solo las compilaciones necesarias (compilación incremental).
CC = gcc
CFLAGS = -Wall -std=c17 -g
TARGET = app
SRCS = main.c utils.c
OBJS = $(SRCS:.c=.o)
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $^ -o $@
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
GDB: depuración de programas C
GDB (GNU Debugger) permite pausar la ejecución en breakpoints, inspeccionar variables en tiempo real y analizar la pila de llamadas cuando ocurre un fallo. Es indispensable para depurar errores difíciles de localizar como segfaults y accesos fuera de rango.
gcc -g -O0 programa.c -o programa
gdb ./programa
(gdb) break main
(gdb) run
(gdb) next
(gdb) print variable
(gdb) backtrace
Contenido del módulo
- Escribir Makefiles con variables, reglas de patrón y objetivos
all,cleanyrun. - Compilar proyectos C multi-fichero de forma incremental.
- Usar GDB para establecer breakpoints y depurar paso a paso.
- Inspeccionar variables, punteros y la pila de llamadas con GDB.
- Detectar fugas de memoria y accesos inválidos con Valgrind.
Otros módulos de este curso
Proyectos y herramientas
Todos los módulos del curso
Navega entre los módulos de C
Proyectos y herramientas
Estás aquíExplora más sobre C
Descubre más recursos de C
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, C es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.