2

我在阅读 Auto-Tools 时在这里找到了一个 makefile 。

我从未使用过这样的makefile,我自己尝试过。
我写的makefile的内容是:

all: HelloWorld

clean:
    rm -f HelloWorld *.o

包含 makefile 的文件夹仅包含一个文件HelloWorld.c

运行make成功,输出如下:

$> make
cc     HelloWorld.c   -o HelloWorld

现在我尝试进行试验,并在 makefile 中将目标重命名为allto HelloWorl。这次make失败并出现以下错误:

$> make
make: *** No rule to make target `HelloWorl', needed by `all'.  Stop.

请解释这种make自动搜索和编译源代码的行为。

我的理解是,它通过.c使用默认cc编译器附加和编译目标名称来制作源名称。

4

1 回答 1

5

您的理解大多是正确的;这是隐含的规则之一。但是,实际上是使用 make's variablemake中的编译器编译文件。CC

于 2013-11-13T04:34:47.717 回答