makefile - phony - rm-rf contra-rm-rf
makefile windows (1)
En un Makefile, leí:
-rm -rf (en lugar de rm -rf). ¿Qué significa el primer "-" al principio de la línea en un Makefile?
Significa que make
ignora cualquier código de error de rm
.
En un makefile
, si algún comando falla, el proceso make
mismo interrumpe el procesamiento. Al prefijar sus comandos con -
, usted notifica que debe continuar procesando las reglas sin importar el resultado del comando.
Por ejemplo, la regla makefile:
clean:
rm *.o
rm *.a
no eliminará los archivos *.a
si rm *.o
devuelve un error (si, por ejemplo, no hay ningún archivo *.o
para eliminar). Utilizando:
clean:
-rm *.o
-rm *.a
Arreglará ese problema en particular.
Aparte: aunque probablemente no sea necesario en su caso específico (ya que la marca -f
parece evitar que rm
devuelva un error cuando el archivo no existe), sigue siendo una buena práctica marcar la línea explícitamente en el makefile
- rm
puede devolver otra Errores en determinadas circunstancias y deja clara su intención.