我在阅读有关Auto-Tools时发现了一个makefile here。
我从未使用过像这样的makefile,我自己试了一下 我写的makefile的内容是:
all: HelloWorld
clean:
rm -f HelloWorld *.o
包含makefile的文件夹只包含一个文件HelloWorld.c
。
以下输出成功运行make
:
$> make
cc HelloWorld.c -o HelloWorld
现在我尝试了一下,在makefile中我将all
的目标重命名为HelloWorl
。此时make
因以下错误而失败:
$> make
make: *** No rule to make target `HelloWorl', needed by `all'. Stop.
请解释make
自动搜索和编译源代码的行为。
我的理解是它通过附加.c
从目标名称创建源名称,并使用默认的cc
编译器对其进行编译。