cheng_bingyuan 发表于 2013-06-24 09:22

关于makefile中 -rm报错

下面的makefile中clean第3行开头有个“-”,我是想如果删除报错的话继续执行下面的命令,但是报错:
/bin/sh: line 1: -rm: command not found
/bin/sh: line 1: -rm: command not found
/bin/sh: line 1: -rm: command not found
/bin/sh: line 1: -rm: command not found
/bin/sh: line 1: -rm: command not found
/bin/sh: line 1: -rm: command not found
/bin/sh: line 1: -rm: command not found
/bin/sh: line 1: -rm: command not found
不知道怎么回事,请大家看一下,谢谢


1clean:
2        for dir in$(dir $(subst $(obj),,$(LIBS))); do \
3        -rm $$dir*.o $$dir.depend $$dir*.a; \
4        done
5        -rm $(obj)$(MAIN_OUT_ELF);

crazyhadoop 发表于 2013-06-24 10:42

makefile中 rm前有 -?

cheng_bingyuan 发表于 2013-06-24 15:15

回复 2# crazyhadoop


    “-”是指如果出现错误忽略错误继续执行下面的指令

crazyhadoop 发表于 2013-06-24 15:29

回复 3# cheng_bingyuan


    还可以这样用? 涨姿势了,那单独执行rm命令可以吗?

cheng_bingyuan 发表于 2013-06-24 16:49

回复 4# crazyhadoop


    用rm的话如果前面报错后面的命令就不能执行了

井蛙夏虫 发表于 2013-06-24 17:09

回复 5# cheng_bingyuan
应当是续行符\的原因。
你可以改为对整个for循环忽略错误,或者不要使用for循环


   

cheng_bingyuan 发表于 2013-06-25 08:54

本帖最后由 cheng_bingyuan 于 2013-06-25 08:57 编辑

回复 6# 井蛙夏虫


    就是续行符“\”的原因,因为我发现如果我删除“\”的话rm前的”-“明显变了一下,感觉就像是从中文字符变成英文字符的感觉,当然我敲的全是英文字符,最后一行的-rm就没问题,我现在只想到用for循环,我尝试找个办法来解决一下,非常感谢。
页: [1]
查看完整版本: 关于makefile中 -rm报错