关于makefile如何工作的说明?

时间:2013-11-13 04:30:44

标签: c makefile autotools

我在阅读有关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编译器对其进行编译。

1 个答案:

答案 0 :(得分:5)

你的理解大多是正确的;这是implicit rules之一。但是,make实际上使用make CC variable中的编译器编译文件。