我正在浏览{{3}}教程,在那里我必须创建这个make
文件:
CFLAGS=-wall -g
clean:
rm -f ex1
当我输入此命令时:
$ make clean
我收到以下错误:
make: *** No rule to make target `clean'. Stop.
我确定我正在使用TABS。为什么我收到此错误?我该如何解决?
答案 0 :(得分:1)
此处的问题,正如对该帖子的一些评论所表明的那样,您将文件命名为make
而不是传统的Makefile
(或替代名称GNUMakefile
和{{1} GNU make支持)。
请参阅GNU制作手册中的What Name to Give Your Makefile。
如果您想使用备用名称(例如makefile
),则需要告诉make
将该文件与make
标志一起使用(在本手册的该部分中也会提到) )。
-f
make -f make
错误是由makefile中的缩进错误引起的。空格而不是食谱线上的标签等
答案 1 :(得分:-1)
我的印象是目标不应该在他们面前有空格。
另外,Make将第一个目标视为默认目标(我们传统上称之为“全部”#);因此,如果'清洁'是你唯一的目标,它将被视为默认目标。
答案 2 :(得分:-1)
我猜你的缩进是不可靠的。对于文件应缩进的方式,make 非常非常。
您的文件应如下所示:
CFLAGS=-wall -g
clean:
rm -f ex1
注意文件中的所有方式都是干净的(前面没有空格),以及如何有两个选项卡(这里用8个空格表示,因为我无法在SO上表示选项卡...)
基本上,Make是一个古老的程序,对于如何完成工作有非常非常特别的规则。请小心并尽可能地遵循缩进规则。