首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用其他Makefile relink的Makefile,我如何修复它?

调用其他Makefile relink的Makefile,我如何修复它?
EN

Stack Overflow用户
提问于 2016-06-26 13:07:34
回答 1查看 159关注 0票数 0

我有一个Makefile:

代码语言:javascript
复制
ZAPPY_SERVER    = zappy_server

ZAPPY_AI    = zappy_ai

ZAPPY_GUI   = zappy_gui

all:    $(ZAPPY_SERVER) $(ZAPPY_AI) $(ZAPPY_GUI)

    $(ZAPPY_SERVER):
        make -C server/ && cp server/zappy_server .

    $(ZAPPY_AI):
        make -C client/ && cp client/zappy_ai .

    $(ZAPPY_GUI):
        make -C gui/ && cp gui/zappy_gui .

    clean:
        make clean -C server/
        make clean -C client/
        make clean -C gui/

    fclean:
        make fclean -C server/ && rm $(ZAPPY_SERVER)
        make fclean -C gui/ && rm $(ZAPPY_GUI)
        make fclean -C client/ && rm $(ZAPPY_AI)

但是,当我调用make,然后调用make clean,然后调用make时,它会重新连接:

代码语言:javascript
复制
make: Nothing to be done for 'all'.

我想再次编译其他Makefiles的源代码。如何做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-27 01:40:42

您的clean规则不会删除文件zappy_serverzappy_aizappy_gui。这些文件是all的先决条件(而且all规则没有命令),所以当您第二次要求Make执行all规则时,Make告诉您没有什么可做的。

如果希望clean删除这些文件,请在clean食谱中添加一行:

代码语言:javascript
复制
rm $(ZAPPY_SERVER) $(ZAPPY_AI) $(ZAPPY_GUI)

如果您不希望clean删除这些文件,但仍然希望Make重新生成这些文件,那么方法之一就是声明这些目标假的

代码语言:javascript
复制
.PHONY: $(ZAPPY_SERVER) $(ZAPPY_AI) $(ZAPPY_GUI)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38038795

复制
相关文章

相似问题

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