首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据退出状态进行make和shell重定向

根据退出状态进行make和shell重定向
EN

Stack Overflow用户
提问于 2012-03-05 17:35:04
回答 2查看 120关注 0票数 1

我有一个make规则,它为一个源代码列表生成一个依赖文件。规则是这样的:

代码语言:javascript
复制
.depend: $(SRCS)
    $(CC) $(INCLUDE) -MM $^ | sed 's-^\(.*\):-$(OBJDIR)\/\1:-'> .depend

我想要的是:如果对于$(SRC)中的任何文件,gcc都失败了,那么就不应该创建.depend。目前,如果gcc在源文件上失败,我将得到一个不完整的.depend,在我修复该问题后,它将不会重新生成。我能做什么?我希望避免每个源文件都有一个.depend文件

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-05 17:41:52

这应该是可行的:

代码语言:javascript
复制
.dependlist: $(SRCS)
    $(CC) $(INCLUDE) -MM $^ > $@

.depends: .dependlist
    sed 's-^\(.*\):-$(OBJDIR)\/\1:-' $< > $@
票数 2
EN

Stack Overflow用户

发布于 2012-03-05 18:49:50

使用.DELETE_ON_ERROR目标:

代码语言:javascript
复制
.DELETE_ON_ERROR:
.depend: $(SRCS)
    $(CC) $(INCLUDE) -MM $^ | sed 's-^\(.*\):-$(OBJDIR)\/\1:-'> .depend

来自here

如果在makefile中的任何位置提到.DELETE_ON_ERROR作为目标,那么如果规则的目标已经更改,并且其配方以非零退出状态退出,则make将删除该目标,就像它在接收信号时所做的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9564382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档