make可以找到指定的目标,Makefile不行

时间:2015-07-27 16:30:40

标签: makefile

学习C艰难的方法,编写我的第一个makefile。 makefile位于包含C文件“ex1.c”和ex3.c“。

的目录中
make ex1

正确编译可执行文件“ex1”。 Makefile包含:

all:
     ex1
     ex3

但是调用“make”会返回错误

make: ex1: No such file or directory.
make: *** [all] Error 1

为什么make可以在指定为arg时找到源代码,但在makefile指定时却不能找到源代码?

1 个答案:

答案 0 :(得分:3)

这段makefile

all:
     ex1
     ex3

告诉make一个目标all,并且当请求all目标时,该目标有两个行的配方。

因此当您运行make all(或makeall是第一个/默认目标)时,尝试运行ex1ex3作为shell命令。这显然已经失败,因为它们还没有建成。

假设您打算告诉make构建ex1ex3 目标您的意思

all: ex1 ex3

所有人都说简单ex1.c - > ex1编译你根本不需要makefile。这就是为什么这本书还没有告诉你创建一本书的原因。