首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成文件中的依赖项

生成文件中的依赖项
EN

Stack Overflow用户
提问于 2010-12-02 03:33:16
回答 1查看 267关注 0票数 2

假设我有一个Makefile:

代码语言:javascript
复制
all: $(BINARY)

$(BINARY): $(OBJS) $(DEBUG_OBJS)
    #Link objects here

$(OBJS): headers
    #Compile code into objects without debug option

$(DEBUG_OBJS): headers
    #Compile code into objects with debug option

headers:
    #Create on-the-fly header files

如您所见,$(OBJS)$(DEBUG_OBJS)都需要目标headers。问题是,headers会被调用两次吗?另外,下面的代码是否等同于上面的代码:

代码语言:javascript
复制
all: $(BINARY)

$(BINARY): headers $(OBJS) $(DEBUG_OBJS)
    #Link objects here

$(OBJS): 
    #Compile code into objects without debug option

$(DEBUG_OBJS): 
    #Compile code into objects with debug option

headers:
    #Create on-the-fly header files

在这种情况下,$(BINARY)会在$(OBJS)$(DEBUG_OBJS)之前调用headers吗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-02 03:40:42

不,headers只会做一次。

您可以编写一个简单的makefile来测试它:

代码语言:javascript
复制
all: foo bar

foo: baz

bar: baz

baz:
        echo 'hi'

在执行make时,hi将只被回显一次。

在第二种情况下,make认为$(BINARY)首先依赖于headers,所以它会在其他依赖项之前执行headers

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

https://stackoverflow.com/questions/4328282

复制
相关文章

相似问题

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