我正在通过一个例如pgm创建一个make文件。
http://mrbook.org/tutorials/make/
我的文件夹eg_make_creation包含以下文件,
desktop:~/eg_make_creation$ ls
factorial.c functions.h hello hello.c main.c Makefile
生成文件
# I am a comment, and I want to say that the variable CC will be
# the compiler to use.
CC=gcc
# Hwy!, I am comment no.2. I want to say that CFLAGS will be the
#options I'll pass to the compiler
CFLAGS=-c -Wall
all:hello
hello:main.o factorial.o hello.o
$(CC) main.o factorial.o hello.o -o hello
main.o:main.c
$(CC) $(CFLAGS) main.c
factorial.o:factorial.c
$(CC) $(CFLAGS) factorial.c
hello.o:hello.c
$(CC) $(CFLAGS) hello.c
clean:
rm -rf *o hello
错误:
desktop:~/eg_make_creation$ make all
make: Nothing to be done for `all'.
请帮助我理解编译该程序。
hello
是最新的。在执行意外操作之前先更改clean
为rm -f *.o hello
,然后运行make clean all
并查看是否可行。
.phony: all clean
,因为all
和clean
不是文件名。