Makefile文件的写法有很多种,在工程目录当中,每一个文件目录下面都有一个Makefile文件(含有.c的目录),Makefile使得编译程序更加简单
第一种:
hello:hello.c
gcc hello.c -o hello
其中hello:hello.c 中的hello就是最终要生成的目标文件,hello.c就是生成目标文件所需要的依赖文件,下面是我们经常使用的shell编译命令。这种方法改变程序的名字,那么Makefile改起来就很麻烦,所以就有了第二种
第二种:
TARGET=hello
SRCS=hello.c add.c
CC=gcc
$(TARGET):$(SRCS)
$(CC) $(SRCS) -O $(TARGET)
定义了一些变量,变量保存的是程序名,这样改起来就方便多了,不用一个个地修改,但是我有很多.c文件的话,这样定义变量也麻烦,那第三种就来了
第三种:
TARGET=hello
SRCS=$(wildcard *.c)
CC=gcc
$(TARGET):$(SRCS)
$(CC) $(OBJ) -O $(TARGET)
第四种:
TARGET=hello
SRCS=$(wildcard *.c)
OBJS=$(patsubst %.c,%.o,$(SRCS))
CC=gcc
$(TARGET):$(OBJS)
$(CC) $(OBJS) -O $(TARGET)
第五种:
TARGET=hello
SRCS=$(wildcard *.c)
OBJS=$(patsubst %.c,%.o,$(SRCS))
$(TARGET):$(OBJS)
$(CC) -O $@ $^
%.o:%.c
$(CC) -O $@ -c $<
clean:
rm *.o $(TARGET)