Uso de .PHONY en el archivo MAKE
Frecuentes
Visto 5,120 veces
5
Mientras buscaba el uso de .PHONY
en makefile, me encontré este que dice algo como
.PHONY también te permite tener objetivos que no tienen una regla asociada
Puse el ejemplo mencionado en esa publicación en un archivo MAKE y lo ejecuté, pero no me muestra ningún error como se menciona en el OP. ¿Puede alguien por favor detallarlo?
El archivo MAKE
target1: dostuff
.PHONY: target2
target2: dostuff
dostuff:
@echo "Stuff gets done!!!!"
O / P
[sourav@titan temp]$ make target1
Stuff gets done!!!!
[sourav@titan temp]$ make target2
Stuff gets done!!!!
[sourav@titan temp]$ make
Stuff gets done!!!!
[sourav@titan temp]$
Según el OP, make target1 debería arrojar un error. Por favor ilumine.
Algo de información
[sourav@titan temp]$ uname -r
2.6.18-194.el5PAE
[sourav@titan temp]$ make --version
GNU Make 3.81
[sourav@titan temp]$
1 Respuestas
3
Verdadero. A .PHONY
target solo puede tener dependencias, sin ninguna regla. En este caso, make no ejecutará ninguna regla, sino que comprobará si se cumplen las dependencias (y, en caso contrario, ejecutará sus reglas).
Por lo tanto, en su ejemplo, es correcto que ambos target1
y target2
llamar al dostuff
porque es una dependencia.
Respondido el 03 de diciembre de 13 a las 13:12
¿Por qué debería tener un error? De acuerdo con la documentación, objetivos falsos (como target1
) puede tener o no tener una regla. En tu caso, target1
no tiene regla. Solo tiene dependencias. Pero esto no es un error. - Claudio
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas makefile or haz tu propia pregunta.
Ese comentario esta mal. - MadScientist
[archivo PDF entrante] gnu.org/software/make/manual/make.pdf .
4.5
- user2485710@dbw Señor, soy nuevo en Linux. ¿Puede usted explicar por favor? - Sourav Ghosh
Lo vinculó al manual de creación en el que puede leer sobre cómo funciona .PHONY. Y para aclarar el comentario de @MadScientist, el cartel del comentario está mal. make permite objetivos sin reglas muy bien independientemente de .PHONY. make no arrojará el error que el cartel de ese comentario indicó que lo haría como se muestra en su prueba. - Etan Reisner