Makefile的使用——模板

来源:互联网 发布:算法第四版王晓东pdf 编辑:程序博客网 时间:2024/05/21 17:20
在生活中实际编程的时候,我们往往将一个工程划分为若干个子目录,相同类型的文件放在一个子目录中,例如:include目录用来存放头文件,lib目录用来存放库,功能不同的.c文件放在不同的目录下。这时候,如果使用gcc编译器进行编译的话会非常麻烦,需要一个个进入目录然后编译,所以一般我们会选择make工程管理器进行编译,只要编写三类的makefile就可以实现对整个工程的编译了。

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

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

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

 

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

 

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

树形结构图如下:

 

 

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

 

第三步:编写总控makefile

 

 

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

 

 

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

 


第六步:执行结果

 

 

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

 

 

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

 

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

树形结构图如下:

 

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

 

 

第三步:编写总控makefile

 

 

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

 

 

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

 

 

第六步:执行结果

 

 

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

 

2 0
原创粉丝点击