Tecnología · GUÍA PRÁCTICA
¿make dice “No rule to make target”? Rastrea el nodo faltante antes de recompilar
El error nombra un nodo del grafo que no existe o no puede generarse. Conserva los Makefiles cargados, el nombre expandido, el objeto real y la búsqueda de reglas.

El mensaje identifica el primer nodo del grafo que make no pudo encontrar ni construir. Conserva la ortografía exacta y demuestra qué Makefiles y variables lo produjeron; repara una arista, no borres todo el árbol.
La causa puede ser un objetivo pedido que no existe, un requisito ausente, una ruta expandida errónea o la falta de una regla explícita o implícita.
1. Congela el primer fallo del grafo
Guarda el primer diagnóstico completo, con niveles recursivos y nombres entre comillas. Registra pwd -P, comando, make --version, MAKEFLAGS y asignaciones. No empieces con make clean: dependencias generadas y orden de fallo son evidencia.
Sin “needed by”, puede faltar el objetivo de la línea de comandos. Con esa frase, dibuja una sola arista del padre al nodo ausente y sigue primero esa rama.
2. Demuestra qué Makefiles y nombres se cargaron
Usa la base de datos o depuración de solo lectura de la implementación, como GNU make -pn, y guarda los Makefiles leídos. En builds recursivos registra cada directorio de entrada; un make hijo puede usar otro árbol y variables.
Busca la cadena exacta y su padre en la base y fuentes. Revisa overrides de comando/entorno, includes, VPATH, fragmentos generados y configuración. Si el nombre está vacío o tiene espacios extraños, muestra los bytes.
3. Examina el objeto real, no la memoria
Desde el directorio del proceso fallido, inspecciona la ruta expandida con stat, readlink y listado sensible a mayúsculas. Un enlace roto, renombre, diferencia de caso, submódulo sin inicializar o ruta absoluta obsoleta producen el mismo síntoma.
Si el nodo debe generarse, identifica generador, feature gate y regla que declara la salida. No crees un placeholder vacío: puede dejar avanzar el build con bytes inválidos y ocultar al productor que nunca corrió.
4. Demuestra el límite de búsqueda de reglas
Para una fuente existente, corrige la ruta o restaura el archivo revisado. Para un nodo generado, demuestra una regla explícita, patrón válido con stem o regla de inferencia aplicable y todos sus requisitos.
Separa porcentajes literales, variables vacías, opciones de bibliotecas desactivadas y Makefiles generados. Si otra herramienta creó el árbol, corrige su configuración y regenera; no edites archivos desechables.
5. Repara una arista y repite la aceptación
Haz el cambio mínimo justificado: corrige un nombre, restaura una fuente, activa el generador previsto, actualiza una dependencia o regenera desde configuración revisada. Conserva los metadatos anteriores.
Repite la invocación original en el mismo directorio y entorno. Acepta si la regla prevista encuentra o crea el nodo, el padre avanza y una segunda ejecución no-op o incremental es estable. Guarda base antes/después, identidad y artefacto final.
