优点:可以很好地解决.h头文件依赖问题,修改任意头文件,会自动重新编译对应的c文件;
缺点:在不同的文件夹下面不能有同名的c文件!
源码目录结构如下:
src
├─main.c
├─dir1
│ ├─file11.c
│ ├─file11.h
│ ├─file12.c
│ └─file12.h
└─dir2
├─sub1
│ ├─file211.c
│ ├─file211.h
│ ├─file212.c
│ └─file212.h
└─sub2
├─file221.c
├─file221.h
├─file222.c
└─file222.h
这个Makefile理解起来有点麻烦,Make进行了递归调用,第1次生成depend文件,第2次进行编译和链接.代码如下:
#|这是一个makefile的范例,用于编译多文件夹,多文件的编译
#定义编译工具链
CC= gcc
CXX= g++
LD= $(CC)
AS= nasm
#编译选项
ASFLAGS = -m32
CFLAGS = -m32 -Wall $(incdir)
CXXFLAGS = -m32 -Wall $(incdir)
LDFLAGS = -m32 -static
#定义输出文件名
target = main.exe