三类makefile:①总控makefile:进入各个功能子目录执行make命令;将所有的.o文件链接或者生成最终的可执行文件
②scripts目录的makefile:定义了许多变量,相当于C语言中的头文件
③功能子目录的makefile:将src目录下的.c文件编译成.o文件
下面是编译整个工程的一个Makefile模板:
第一步:新建工程(一个实现加减乘除运算的计算器)
树形结构图如下:
第二步:编写scripts目录的makefile,定义各种需要用到的变量
第三步:编写总控makefile
第四步:编写各功能子目录下的Makefile(由于各功能子目录下的Makefile结构相同,这里以main函数的功能目录的Makefile为例)
第五步:全部编写完之后,回到顶级目录,执行make
第六步:执行结果
第七步:执行make clean操作,清除.o文件
上面的模板是使用了许多函数,包括wildcard,patsubst,call等,其实不使用这些函数也同样能够实现上述的编译效果,下面提供一种不使用函数的Makefile模板:
第一步:新建工程(一个实现加减乘除运算的计算器)
树形结构图如下:
第二步:编写scripts目录的makefile,定义各种需要用到的变量,这次不使用函数
第三步:编写总控makefile
第四步:编写各功能子目录下的Makefile(由于各功能子目录下的Makefile结构相同,这里以main函数的功能目录的Makefile为例)
第五步:全部编写完之后,回到顶级目录,执行make
第六步:执行结果
第七步:执行make clean操作,清除.o文件