La commande $ make all
donne des erreurs telles que rm: cannot remove '.lambda': No such file or directory
si elle s'arrête. Je veux qu'il ignore les erreurs rm-not-found-errors. Comment puis-je forcer?
Makefile
all:
make clean
make .lambda
make .lambda_t
make .activity
make .activity_t_lambda
clean:
rm .lambda .lambda_t .activity .activity_t_lambda
.lambda:
awk '{printf "%.4f \n", log(2)/log(2.71828183)/$$1}' t_year > .lambda
.lambda_t:
paste .lambda t_year > .lambda_t
.activity:
awk '{printf "%.4f \n", $$1*2.71828183^(-$$1*$$2)}' .lambda_t > .activity
.activity_t_lambda:
paste .activity t_year .lambda | sed -e 's@\t@\t\&\t@g' -e 's@$$@\t\\\\@g' | tee > .activity_t_lambda > ../RESULTS/currentActivity.tex
rm -f
est mieux pour le problème spécifique rencontré par l'utilisateur, mais il est toujours bon de connaître la solution générale même si elle est parfois dangereuse.$(RM)
, que vous pouvez utiliser à la place derm -f
.make -k
(ou--keep-going
sur gnumake) fera ce que vous demandez, je pense.Vous devriez vraiment trouver la ligne del ou rm qui échoue et y ajouter un
-f
pour éviter que cette erreur ne se produise à d'autres.la source
make
de construire autant d'unités de compilation que possible pendant que vous corrigez ce que le compilateur s'est étouffé. De cette façon, lorsque vous avez corrigé tout ce qui était cassé, vous n'avez pas à attendre que tout le reste soit construit.Changer propre en
Ie ne demande pas de suppression; ne vous plaignez pas si le fichier n'existe pas.
la source
Retour réussi en bloquant
rm
le code de retour derrière un tube avec latrue
commande, qui retourne toujours0
(succès)la source
Pour que make ignore les erreurs sur une seule ligne, vous pouvez simplement le suffixer avec
; true
, en définissant la valeur de retour sur 0. Par exemple:Cela redirigera la sortie stderr vers null, et suivra la commande avec true (qui retourne toujours 0, faisant croire que la commande a réussi indépendamment de ce qui s'est réellement passé), permettant au programme de continuer.
la source
Changez votre
clean
pourrm
ne pas vous plaindre:la source
Mettez une
-f
option dans votrerm
commande.la source