Makefile的使用——模板

 在生活中实际编程的时候,我们往往将一个工程划分为若干个子目录,相同类型的文件放在一个子目录中,例如:include目录用来存放头文件,lib目录用来存放库,功能不同的.c文件放在不同的目录下。这时候,如果使用gcc编译器进行编译的话会非常麻烦,需要一个个进入目录然后编译,所以一般我们会选择make工程管理器进行编译,只要编写三类的makefile就可以实现对整个工程的编译了。

三类makefile:①总控makefile:进入各个功能子目录执行make命令;将所有的.o文件链接或者生成最终的可执行文件

              ②scripts目录的makefile:定义了许多变量,相当于C语言中的头文件

              ③功能子目录的makefile:将src目录下的.c文件编译成.o文件

 

下面是编译整个工程的一个Makefile模板:

 

第一步:新建工程(一个实现加减乘除运算的计算器)

树形结构图如下:

 Makefile的使用——模板_第1张图片

 

第二步:编写scripts目录的makefile,定义各种需要用到的变量

 Makefile的使用——模板_第2张图片

第三步:编写总控makefile

 Makefile的使用——模板_第3张图片

 

第四步:编写各功能子目录下的Makefile(由于各功能子目录下的Makefile结构相同,这里以main函数的功能目录的Makefile为例)

 Makefile的使用——模板_第4张图片

 

第五步:全部编写完之后,回到顶级目录,执行make

Makefile的使用——模板_第5张图片 


第六步:执行结果

 Makefile的使用——模板_第6张图片

 

第七步:执行make clean操作,清除.o文件

 Makefile的使用——模板_第7张图片

 

上面的模板是使用了许多函数,包括wildcardpatsubstcall等,其实不使用这些函数也同样能够实现上述的编译效果,下面提供一种不使用函数的Makefile模板:

 

第一步:新建工程(一个实现加减乘除运算的计算器)

树形结构图如下:

Makefile的使用——模板_第8张图片

 

第二步:编写scripts目录的makefile,定义各种需要用到的变量,这次不使用函数

 Makefile的使用——模板_第9张图片

 

第三步:编写总控makefile

 Makefile的使用——模板_第10张图片

 

第四步:编写各功能子目录下的Makefile(由于各功能子目录下的Makefile结构相同,这里以main函数的功能目录的Makefile为例)

 Makefile的使用——模板_第11张图片

 

第五步:全部编写完之后,回到顶级目录,执行make

 Makefile的使用——模板_第12张图片

 

第六步:执行结果

 Makefile的使用——模板_第13张图片

 

第七步:执行make clean操作,清除.o文件

 Makefile的使用——模板_第14张图片

你可能感兴趣的:(C/C++,makefile,gcc)