makefiles 隐式规则说文件是最新的但文件甚至不存在
makefiles implicit rules says file up to date but file doesn't even exist
我尝试使用 make 的隐式规则来编译简单的 C 文件。
# -*- MakeFile -*-
new.o: new.c
输出:
make: 'new.o' is up to date.
但是 new.o
此时不存在。但我添加了另一条规则,它按预期工作。
# -*- MakeFile -*-
new.o: new.c
clean:
rm -f new.o
输出:
cc -c -o new.o new.c
现在 运行 命令如预期。它是否需要至少两个食谱才能起作用,还是我错过了一些很明显的东西?
我犯了一个愚蠢的错误,在我隐含的配方下面添加了额外的 newline TAB 字符。删除多余的 newline TAB 字符解决问题
已编辑 makefile
# -*- MakeFile -*-
new.o: new.c
输出:
cc -c -o new.o new.c
我尝试使用 make 的隐式规则来编译简单的 C 文件。
# -*- MakeFile -*-
new.o: new.c
输出:
make: 'new.o' is up to date.
但是 new.o
此时不存在。但我添加了另一条规则,它按预期工作。
# -*- MakeFile -*-
new.o: new.c
clean:
rm -f new.o
输出:
cc -c -o new.o new.c
现在 运行 命令如预期。它是否需要至少两个食谱才能起作用,还是我错过了一些很明显的东西?
我犯了一个愚蠢的错误,在我隐含的配方下面添加了额外的 newline TAB 字符。删除多余的 newline TAB 字符解决问题
已编辑 makefile
# -*- MakeFile -*-
new.o: new.c
输出:
cc -c -o new.o new.c