Error de archivo MAKE de gcc: "No hay regla para convertir el objetivo ..."

Resuelto Meir asked hace 15 años • 22 respuestas

Estoy intentando utilizar GCC (linux) con un archivo MAKE para compilar mi proyecto.

Recibo el siguiente error que parece que no se puede descifrar en este contexto:

"No rule to make target 'vertex.cpp', needed by 'vertex.o'.  Stop."

Este es el archivo MAKE:

a.out: vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o
    g++ vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o

main.o: main.cpp main.h
    g++ -c main.cpp

vertex.o: vertex.cpp vertex.h
    g++ -c vertex.cpp

edge.o: edge.cpp edge.h
    g++ -c num.cpp

vlist.o: vlist.cpp vlist.h
    g++ -c vlist.cpp

elist.o: elist.cpp elist.h
    g++ -c elist.cpp

vnode.o: vnode.cpp vnode.h
    g++ -c vnode.cpp

enode.o: enode.cpp enode.h
    g++ -c node.cpp
Meir avatar May 07 '09 20:05 Meir
Aceptado

Por lo general, esto se debe a que no tiene un archivo llamado vertex.cppdisponible para crear. Mira esto:

  • ese archivo existe.
  • estás en el directorio correcto cuando lo haces.

Aparte de eso, no tengo mucho más que sugerir. Quizás podría darnos una lista de ese directorio.

paxdiablo avatar May 07 '2009 13:05 paxdiablo

En mi experiencia, este error frecuentemente se debe a un error ortográfico .

Recibí este error hoy.

make[1]: *** No hay regla para hacer que el objetivo sea maintenaceDialog.cpp', needed bymaintenaceDialog.o'. Detener.

En mi caso el error fue simplemente un error ortográfico. Faltaba la palabra MANTENIMIENTO, es la tercera N.

También revise la ortografía de sus nombres de archivos.

Wes avatar Apr 23 '2012 14:04 Wes

La razón más común por la que se imprime este mensaje es porque olvidó incluir el directorio en el que reside el archivo fuente. Como resultado, gcc "piensa" que este archivo no existe.

Puede agregar el directorio usando el argumento -I a gcc.

 avatar Aug 24 '2009 06:08