1.建立工程文件夹
其中包含4个文件夹和1个文件,分别是:
include
bin
obj
src
Makefile(文件)
2.放入相应文件
*.c
文件放在src文件夹中
*.h
头文件放在include文件夹中
obj存放.c
文件编译不链接后的.o
文件
bin文件夹存放最后链接生成的可执行文件
3.编写3个Makefile文件
总Makefile文件(工程文件夹中):
#引入变量,方便后期修改
CC:=gcc
CFLAGS:=-c -g -Wall
RM:=rm -rf
OBJS:=main.o list.o
MyApp:=mylist
export CC CFLAGS RM OBJS MyApp
All:
make -C ./src/
make -C ./obj/
.PHONY: clear
clear:
$(RM) ./obj/*.o
$(RM) ./bin/*
src文件夹中的Makefile:
all:$(OBJS)
mv $^ ../obj/
main.o:main.c
$(CC) $(CFLAGS) $< -o $@
list.o:list.c
$(CC) $(CFLAGS) $< -o $@
#这三个是系统变量
# $< 依赖中的第一个依赖
# $^ 所有依赖
# $@ 目标名
obj文件中的Makefile文件:
all:$(MyApp)
mv $^ ../bin/
$(MyApp):$(OBJS)
$(CC) $^ -o $@