Makefile-详细说明

目录

1.makefile的用法:

2.假目标

3.预定义变量

4.自定义变量

5.自动变量

6.变量定义的两种方式

6.1 递归方式 (VAR=var)

6.2 简单方式(VAR:=var)

7.嵌套Makefile

1.makefile的用法:

创建makefile:

vi Makefile

运行用make(一个路径下只能有一个Makefile)

在Makefile中,

命名规范:

目标文件1:依赖文件1

(Tab键)依赖文件1怎么生成目标文件1的(也就是用依赖文件生成目标文件的方法)

目标文件2:依赖文件2

(Tab键)依赖文件2怎么生成目标文件2的

注意:

(1)目标文件1和目标文件2没有关联的话,默认只执行目标文件1

(2)一个Makefile中可以有多个目标文件

(3)在调用make时,需要我们指定要运行的目标是什么,不然只运行目标文件1

上图中:mingling1中并没有和mingling2有联系,只执行mingling1

注意:直接echo不把echo当做命令,要在前边加@符号

上图中:命令从下往上输出

注意:在Makefile中,命令从下往上运行

2.假目标

假目标:就是在Makefile中有一个目标文件与创建Makefile路径的的某一个文件名字相同,会不执行Makefile中的目标文件

解决方法:在Makefile中的名字相同的目标文件前加.PHONY

3.预定义变量

CC:c编辑器的名称,默认为cc

CFLAGS :c编辑器的选项,无默认值

RM :文件删除默认选项,默认为rm -rf

4.自定义变量

OBJ 和 OBJS :一个用于存放可执行文件,一个存放所有的目标文件(.o文件)

5.自动变量

$@ :目标文件

$< :表示第一个依赖文件

$^ :表示所有的依赖文件

6.变量定义的两种方式

6.1 递归方式 (VAR=var)

用递归方式时,某一个值后面改变也会影响前边改变

上图中:a在后边变了,前边的b,c也随之改变

6.2 简单方式(VAR:=var)

上图中,用加了:的简单方式,后边值的改变对前边的不影响

7.嵌套Makefile

(1)创建文件夹:

include 放.h文件

src 放.c文件

obj 放.c文件生成的.o文件

bin 放.o文件生成的可执行文件

(2)编写总控Makefile,先书写自定义变量和预定义变量

上图中的export表示下行的Makefile文件中也可以用,不用再进行书写

(3)编写src中的Makefile文件,将所有的.c文件生成.o文件

 上图中mv的意思是将所有的.o文件移动到obj文件夹中

(4)在obj文件中编写Makefile文件,将所有的.o文件汇集生成可执行文件,并将其移动到bin目录下

 (5)再次编写总控Makefile文件,先执行src中的Makefile文件将所有的.c文件生成.o文件,再执行obj中的Makefile文件,将所有的.o文件编译汇集成一个可执行文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值