打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Makefile中的+/- 符号
userphoto

2014.01.23

关注
make 通常会在命令运行结束后检查命令的执行的返回状态,如果返回成功,那么就启动一个子 shell 来执行下一条命令;如果在中途检测到有执行出错的情况(返回非 0 状态),那么就会放弃对当前规则后续命令的执行,甚至会终止所有规则的执行。但在某些情况下,规则中一个命令执行失败并不代表整个规则执行错误,所以完全可以忽略这条可能执行失败的命令,其忽略的方法是在命令前添加一个 '-' 符号。在 Makefile 经常看到在 include 面前添加 '-' 符号:-include ,这时当当 include 包含的文件不存在时也不会造成整个 Makefile 解析的终止。又如,当一条 rm 命令前添加 ‘-’ 符号时,如果要删除的文件不存在或删除文件失败也不会对整个流程有任何影响。

除了 '-' 符号外,还可以看到 '+' 符号,它的意思和 '-' 相反,表示不忽略。这就意味着,像 make 的命令行选项 -n(--just print), -t(touch) 并不影响之前带 '+' 符号的命令的执行。像 -n 选项,一般情况下,它只是在解析命令,而不真正执行它们,但是命令前使用了 '+' 就后 -n 选项就不能阻止命令被执行。如一个目录下有这几个文件:

引用
$ ls
Makefile  test2.txt  test.txt

Makefile 的内容为:
1
2
3
all:
    @rm-f  test.txt
    +@rm-f test2.txt

使用 -n 选项来运行 make:
引用
$ make -n
rm -f  test.txt
rm -f test2.txt

再检查一下当前目录:
引用
$ ls
Makefile  test.txt
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Linux + Makefile】十分钟教你学会Makefile的FORCE
Make 命令教程
内核顶层Makefile相关1
如何写 makefile文件
Linux命令之make规则
关于makefile中自动产生依赖的理解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服