make,makefile,shell中的加号+,减号-和at号@的含义

原文地址:https://www.cnblogs.com/leaven/p/4337628.html

http://www.crifan.com/order_make__makefile_in_the_plus__minus_-_and_at_the_meaning_of_numbers/

在看makefile,其中有些依赖规则中的命令行前面,会有一些减号“-”或者at符号“@”,

比如:

distclean: mrproper
 -rm -f user/tinylogin/applet_source_list user/tinylogin/config.h

对其含义不是很清楚,所以去找了找。

 

【make/makefile中的加号+,减号-和at号@的含义】

原先以为,命令行前面加上减号等做法,是属于makefile中的规则,

就像这里:

http://www.cublog.cn/u3/102001/showart_2277987.html

说的那样:

“有些命令会在开头加一个’-‘,作用是发生错误时Makefile继续”

后来才知道,原来这个做法,其实是Linux中的Shell中的规则,具体含义为:

http://www.kuqin.com/aixcmds/aixcmds3/make.htm

shell 命令

每个目标都可以具有与其关联的一系列 shell 命令,这些命令通常用来创建目标。此脚本中的每一条命令都必须以制表符开始。虽然任何目标都能够显示在相关性行上,但除非使用 :: 操作符,否则这些相关性中只有一个能够通过创建脚本来跟随。

如果命令行的第一个或前两个字符是 @ (at 符号)、-(连字符)和 +(加号)这几个符号之一或全部,那么将特别处理该命令,如下:

@使命令在被执行前不被回显。
-使任何命令行的任何非零退出状态都被忽略。
+使命令行可以通过指定 -n、-q 或 -t 选项来执行。

 

所以,简单的说就是:

【make中命令行前面加上减号】

就是,忽略当前此行命令执行时候所遇到的错误。

而如果不忽略,make在执行命令的时候,如果遇到error,会退出执行的,加上减号的目的,是即便此行命令执行中出错,比如删除一个不存在的文件等,那么也不要管,继续执行make。

【make中命令行前面加上at符号@】

就是,在make执行时候,输出的信息中,不要显示此行命令。

而正常情况下,make执行过程中,都是会显示其所执行的任何的命令的。如果你不想要显示某行的命令,那么就在其前面加上@符号即可。

【make中命令行前面加上加号+】

对于命令行前面加上加号+的含义,目前还是不是很清楚。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值