C++ GNU会自动添加额外的先决条件吗?
下面的示例片段来自“使用GNU Make管理项目(第三版)”第21页 作者说,C++ GNU会自动添加额外的先决条件吗?,c++,build,makefile,C++,Build,Makefile,下面的示例片段来自“使用GNU Make管理项目(第三版)”第21页 作者说,make将通过隐式规则自动将count\u words.o添加到先决条件列表中。引述: ,make标识了四个先决条件:count_words.o(该先决条件在makefile中丢失,但由隐式规则提供)、counter.o、lexer.o和-lfl 然而,我的测试与此不符。这是我的测试: prog: abc.o @echo $^ abc.o: @echo abc.o built. prog.o:
make
将通过隐式规则自动将count\u words.o
添加到先决条件列表中。引述:
,make标识了四个先决条件:count_words.o(该先决条件在makefile中丢失,但由隐式规则提供)、counter.o、lexer.o和-lfl
然而,我的测试与此不符。这是我的测试:
prog: abc.o
@echo $^
abc.o:
@echo abc.o built.
prog.o:
@echo prog.o bulit.
运行make
后的输出为:
abc.o建造
abc.o
make
没有为目标prog
搜索prog.o
。
有什么问题吗?我的考试有什么问题吗
顺便说一句,我的测试是在
Cygwin
上,使用gnumake4.1
你给了你的prog
目标一个配方。作者没有为count_words
目标做任何准备。这就是区别
作者指望内置的%:%.o
规则生效。你用你的规则推翻了这一点
从prog
配方中删除@echo$^
,然后重试
prog: abc.o
@echo $^
abc.o:
@echo abc.o built.
prog.o:
@echo prog.o bulit.