all:main # 一般makefile中的第一个目标都是all:可执行文件
# 为了保证,最后Makefile文件执行后一定会生成一个可执行文件
main:main.o add.o
gcc main.o add.o -o main
main.o:main.c
gcc -c main.c -o main.o
add.o:add.c
gcc -c add.c -o add.o
clean: # 删除生成的中间文件和可执行文件
rm *.o main
EXE=main # 保存可执行文件
OBJS=main.o add.o
CC=gcc # Makefile中表示使用的编译器
CFLAGS=-c -g -Wall -o # -g:调试 -Wall:显示警告
all:$(EXE)
$(EXE):$(OBJS)
$(CC) $(OBJS) -o $(EXE)
main.o:main.c
$(CC) $(CFLAGS) main.o main.c
add.o:add.c
$(CC) $(CFLAGS) add.o add.c
clean:
$(RM) $(OBJS) $(EXE)
EXE=main # 保存可执行文件
OBJS=main.o add.o
CC=gcc # Makefile中表示使用的编译器
CFLAGS=-c -g -Wall -o # -g:调试 -Wall:显示警告
all:$(EXE)
$(EXE):$(OBJS)
$(CC) $^ -o $(EXE)
%.o:%.c
$(CC) $(CFLAGS) $@ $<
.PHONY:clean
clean:
$(RM) $(OBJS) $(EXE)
EXE=fun # 保存可执行文件
OBJS=main.o fun.o fun1.o
CC=gcc # Makefile中表示使用的编译器
CFLAGS=-c -g -Wall -o # -g:调试 -Wall:显示警告
all:$(EXE)
$(EXE):$(OBJS)
$(CC) $^ -o $(EXE)
%.o:%.c
$(CC) $(CFLAGS) $@ $<
.PHONY:clean
clean:
$(RM) $(OBJS) $(EXE)