Makefile 为什么make坚持文件是最新的
考虑这个在FreeBSD上生成文件的简单示例Makefile 为什么make坚持文件是最新的,makefile,gnu-make,freebsd,Makefile,Gnu Make,Freebsd,考虑这个在FreeBSD上生成文件的简单示例 all: hello hello: hello.o gcc -o hello hello.o hello.o: hello.c gcc -c hello.c clean: rm hello.o hello 无论我做什么,都要更改hello.c,或者即使我将Makefile中的内容更改为完全无意义,,make说: `makefile' is up to date. 有什么可以解释这是怎么回事?我想你的makefi
all: hello
hello: hello.o
gcc -o hello hello.o
hello.o: hello.c
gcc -c hello.c
clean:
rm hello.o hello
无论我做什么,都要更改hello.c,或者即使我将Makefile中的内容更改为完全无意义,,make说:
`makefile' is up to date.
有什么可以解释这是怎么回事?我想你的makefiles有点乱。请注意(对于GNU Make):
默认情况下,Make在查找makefile时,会按顺序尝试以下名称:GNUmakefile、makefile和makefile。
-确保您没有创建GNUmakefile`
当谈到基于make
的FreeBSD时,它将是:如果没有-f makefile makefile选项,make将尝试打开“makefile”,然后打开“makefile”,以查找规范。
我可以想象,唯一的情况如下:
> cat Makefile
all: hello
hello: hello.o
cc -o hello hello.o
hello.o: hello.c
cc -c hello.c
clean:
rm hello.o hello
> make
cc -c hello.c
cc -o hello hello.o
> ./hello
Hello world!
> make clean
rm hello.o hello
> touch makefile
> echo "makefile:" > .depend
> make
`makefile' is up to date.
什么是m
?我在makefile中没有看到它。对不起,拼写错误应该是makefile。如果我用gmake而不是FreeBSDs-make运行这个Makefile,它就会正常工作。在FreeBSD上生成gmake有什么区别?您的错误消息仍然与显示的生成文件不匹配。您可能需要刷新如何创建一个。另外,请告诉我们如何使用make
命令。您提供了哪些参数?您的makefile的名称是什么?它不是“makefile”吗?您的工作目录中是否有名为“makefile”的文件?您是如何运行make
?您显示的输出与makefile内容不匹配,因为“makefile”是最新的”表示
make`尝试生成的目标的名称是“makefile”。