学习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指定时却不能找到源代码?
答案 0 :(得分:3)
这段makefile
all:
ex1
ex3
告诉make一个目标all
,并且当请求all
目标时,该目标有两个行的配方。
因此当您运行make all
(或make
时all
是第一个/默认目标)时,尝试运行ex1
和ex3
作为shell命令。这显然已经失败,因为它们还没有建成。
假设您打算告诉make构建ex1
和ex3
目标您的意思
all: ex1 ex3
所有人都说简单ex1.c
- > ex1
编译你根本不需要makefile。这就是为什么这本书还没有告诉你创建一本书的原因。